1.命名空間
using System;
using Excel = Microsoft.Office.Interop.Excel;
2.調用方法
/// <summary> /// EXL轉PDF /// </summary> /// <param name="inputFile">待轉換的Excel路徑</param> /// <param name="outputFile">PFD文件路徑</param> public string ExcelToPdf(string inputFile, string outputFile) { Excel.Application lobjExcelApp = null; Excel.Workbooks lobjExcelWorkBooks = null; Excel.Workbook lobjExcelWorkBook = null; string lstrTemp = string.Empty; object lobjMissing = System.Reflection.Missing.Value; try { lobjExcelApp = new Excel.Application(); lobjExcelApp.Visible = false; lobjExcelApp.DisplayAlerts = false; lobjExcelApp.ScreenUpdating = false; lobjExcelWorkBooks = lobjExcelApp.Workbooks; lobjExcelWorkBook = lobjExcelWorkBooks.Open(inputFile); if (lobjExcelWorkBook == null) { lobjExcelApp.Quit(); lobjExcelApp = null; } else { //輸出為PDF 第一個選項指定轉出為PDF lobjExcelWorkBook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, outputFile, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, Type.Missing, Type.Missing, false, Type.Missing); } } catch (Exception ex) { throw ex; } finally { if (lobjExcelWorkBook != null) { lobjExcelWorkBook.Close(); Marshal.ReleaseComObject(lobjExcelWorkBook); lobjExcelWorkBook = null; } if (lobjExcelWorkBooks != null) { lobjExcelWorkBooks.Close(); Marshal.ReleaseComObject(lobjExcelWorkBooks); lobjExcelWorkBooks = null; } if (lobjExcelApp != null) { lobjExcelApp.Quit(); Marshal.ReleaseComObject(lobjExcelApp); lobjExcelApp = null; } //主動激活垃圾回收器,主要是避免超大批量轉文檔時,內存占用過多,而垃圾回收器並不是時刻都在運行! GC.Collect(); GC.WaitForPendingFinalizers(); } return outputFile; }
