我想產生的.xlsx電子表格導出爲PDF。 我有兩個問題:的Microsoft Office Excel的互操作ExportAsFixedFormat - 很慢,圖像不加載
- 導出文件是兩個方法非常緩慢 - 另存爲()ExportAsFixedFormat()
- ExportAsFixedFormat不導出圖像。
我正在與IIS ASP.NET服務器的代碼。 https://support.comodo.com/index.php?/Knowledgebase/Article/View/1129/66/access-denied-exception-from-hresult-0x80070005-e_accessdenied
從這個庫中的代碼,而不會出現錯誤:https://github.com/aardvarkss/ExcelPDFExport
而且我生成EPPlus .xlsx文件
喜歡這裏說的已經配置的權限。
代碼:
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks excelWorkbooks = app.Workbooks;
Microsoft.Office.Interop.Excel.Workbook wkb = excelWorkbooks.Open(this.tempExcelFilePath);
foreach (Microsoft.Office.Interop.Excel.Worksheet sheet in wkb.Sheets)
{
sheet.SaveAs(this.tempPdfFilePath); // Saves the PDF correct AS I want But it cannot finish the task (waiting around 3 mins)
sheet.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, this.tempPdfFilePath); // Export PDF without image (image currently cannot be displayed), Also slow
}
wkb.SaveAs(this.tempPdfFilePath); // Waiting too long and cannot be finished
wkb.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, "C:\\Users\\user222\\Desktop\\Sample.pdf"); // Waiting too long and cannot be finish the task
// Closes the EXCEL.exe process in windows. If it not closes it cause errors.
wkb.Close(SaveChanges: false);
excelWorkbooks.Close();
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(wkb);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelWorkbooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
任何想法,爲什麼它這麼慢?以及如何解決我的問題?
的加載速度慢今天開始。在此之前,它沒有加載緩慢的問題。
互操作既不旨在也不建議在服務器應用中使用。檢查TaskManager是否沒有孤立的EXCEL.EXE。 – Alex
在到達新的Microsoft.Office.Interop.Excel.Application();行之前進行調試時,在任務管理器中沒有EXCEL.EXE進程。 – mihkov
好吧,我想它應該是Excel或源文件,因爲它在今天之前工作。嘗試重新安裝服務器,看看它是否會有所作爲。 – Alex