簡體   English   中英

在IIS下通過asp.net(C#)從Excel轉換為CSV

[英]Convert from Excel to CSV via asp.net (C#) under IIS

我有將xlsx轉換為csv的簡單過程。

public static void ConvertExcelToCsv(string source, string destination, int sheetNumber = 1)
{

    if (File.Exists(destination)) File.Delete(destination);

    Excel.Application xl = new Excel.Application();

    xl.DisplayAlerts = false;
    Excel.Workbook workbook = xl.Workbooks.Open(source);
    // workbook.Close(true);
    workbook.SaveAs(destination, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV);
    object misValue = System.Reflection.Missing.Value;

    if (workbook != null)
    {
        workbook.Close(false, Type.Missing, Type.Missing);
        xl.Workbooks.Close();
        Marshal.ReleaseComObject(workbook);
    }


    xl.Quit();
    GC.Collect();
    Marshal.FinalReleaseComObject(xl);
}

在我的本地計算機和本地IIS上,一切正常。 但是上傳到Web服務器后似乎不起作用。 它所做的所有事情都要處理大約3分鍾,然后超時。

我還允許組件中的權限

Services -> Computers -> My Computer -> DCOM Config -> Microsoft Excel Application -> IIS_IUSRS

並創建了桌面文件夾

C:\\Windows\\SysWOW64\\config\\systemprofile\\

也是32bit的:-)

所以現在,我不知道為什么它不起作用。 您對此有類似的經驗嗎,或者可以提供一些提示,請問我該怎么做。

您收到的確切錯誤是什么? 檢查IIS日志和應用程序事件日志中的特定錯誤。

需要檢查的幾件事:

  1. 確保您的應用程序池的“啟用32位應用程序”設置為True
  2. 如果尚未在Web服務器上安裝Excel,則在發布站點時需要復制Interop程序集。 為此,將“復制本地”設置為True以引用Interop。
  3. 確保您的應用對sourcedestination引用的路徑具有適當的權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM