zoukankan      html  css  js  c++  java
  • 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;
            }
     
  • 相关阅读:
    std::type_index(转)
    __sync_fetch_and_add系列(转)
    InterlockedIncrement函数详解(转)
    如何让服务端同时支持WebSocket和SSL加密的WebSocket(即同时支持ws和wss)?(转)
    Linux系统管理基础测试
    CentOS7.7源码包安装Cmake3.0
    Shell-三剑客(sed)
    问题-突然发现公司网站访问速度变的很慢很慢
    Linux基础命令之文件及目录管理
    Linux基础命令之进程管理
  • 原文地址:https://www.cnblogs.com/dmei/p/14309416.html
Copyright © 2011-2022 走看看