栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#将Excel转成PDF的方法

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#将Excel转成PDF的方法

PS:公司的业务中有个超级大的作业就是把OFFICE文档转成PDF,我猜之前没程序猿们,公司那些人应该是一个个手动转。强烈为猿们感叹,帮你们做了这么多事,还在那抱怨....无法满足你们的需求啊;

微软net平台提供了对Office文档非常好的支持;其中有com组件直接集成到了VS中。利用这些API可以快速的免去N多繁琐的工作;

以下代码是翻阅了公司的代码,一个个敲出来的;奉上代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
//Office 命名空间
namespace OfficeToPdf
{
  //excel 类
  class ExcelConverter
  {
    //构造函数
    public ExcelConverter()
    { }
    /// 
    /// 转换excel 成PDF文档
    /// 
    /// 原文件路径
    /// pdf文件输出路径
    /// true 成功
    public bool ConverterToPdf(string _lstrInputFile,string _lstrOutFile)
    {
      Microsoft.Office.Interop.Excel.Application lobjExcelApp = null;      
      Microsoft.Office.Interop.Excel.Workbooks lobjExcelWorkBooks = null;
      Microsoft.Office.Interop.Excel.Workbook lobjExcelWorkBook = null;
      string lstrTemp = string.Empty;
      object lobjMissing = System.Reflection.Missing.Value;
      try
      {
 lobjExcelApp = new Microsoft.Office.Interop.Excel.Application();
 lobjExcelApp.Visible = true;
 lobjExcelWorkBooks = lobjExcelApp.Workbooks;
 lobjExcelWorkBook = lobjExcelWorkBooks.Open(_lstrInputFile, true, true, lobjMissing, lobjMissing, lobjMissing, true,
   lobjMissing, lobjMissing, lobjMissing, lobjMissing, lobjMissing, false, lobjMissing, lobjMissing);
 //Microsoft.Office.Interop.Excel 12.0.0.0之后才有这函数      
 lstrTemp = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".xls" + (lobjExcelWorkBook.HasVBProject ? 'm' : 'x');
 //lstrTemp = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".xls";
 lobjExcelWorkBook.SaveAs(lstrTemp, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel4Workbook, Type.Missing, Type.Missing, Type.Missing, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing,
   false, Type.Missing, Type.Missing, Type.Missing);
 //输出为PDF 第一个选项指定转出为PDF,还可以指定为XPS格式
 lobjExcelWorkBook.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, _lstrOutFile, Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, Type.Missing, false, Type.Missing, Type.Missing, false, Type.Missing);
 lobjExcelWorkBooks.Close();
 lobjExcelApp.Quit();
      }
      catch (Exception ex)
      {
 //其他日志操作;
 return false;
      }
      finally {
 if (lobjExcelWorkBook != null)
 {
   lobjExcelWorkBook.Close(Type.Missing,Type.Missing,Type.Missing);
   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 true;
    }
  }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对考高分网的支持。如果你想了解更多相关内容请查看下面相关链接

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/122679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号