C# Excel轉PDF


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;
        }
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM