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;
        }
 
原文地址:https://www.cnblogs.com/dmei/p/14309416.html