当前位置: 首页 > news >正文

C#操作ms office实现office转pdf

前提

安装office 2019
安装vs 2022

新建项目

引入4个com包
在这里插入图片描述
在这里插入图片描述

编写代码

代码结构
在这里插入图片描述
代码如下

using Microsoft.Office.Interop.Excel;namespace UseMsOffice
{internal class Program{static void Main(string[] args){WordToPdf();ExcelToPdf();PPTToPdf();}static void WordToPdf(){// Word应用程序对象  var wordApp = new Microsoft.Office.Interop.Word.Application();Microsoft.Office.Interop.Word.Document? doc = null;string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";try{// 设置为不可见模式  wordApp.Visible = false;var docPath = Path.Combine(root, "Document", "office.docx");// 打开一个现有的Word文档  doc = wordApp.Documents.Open(docPath);// 将文档另存为PDF  string pdfPath = Path.Combine(root, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}_office.pdf");doc.ExportAsFixedFormat(pdfPath, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);// 关闭文档和Word应用  doc.Close();wordApp.Quit();Console.WriteLine("文档已成功转换为PDF格式。");}catch (Exception ex){Console.WriteLine("发生错误:" + ex.Message);}finally{// 释放COM对象  System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);doc = null;wordApp = null;}}static void ExcelToPdf(){// Excel应用程序对象  var excelApp = new Microsoft.Office.Interop.Excel.Application();Microsoft.Office.Interop.Excel.Workbook workBook = null;string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";try{// 设置为不可见模式  excelApp.Visible = false;var docPath = Path.Combine(root, "Document", "office.xlsx");// 打开一个现有的Word文档  workBook = excelApp.Workbooks.Open(docPath);// 将文档另存为PDF  string pdfPath = Path.Combine(root, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}_office.pdf");workBook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, pdfPath);// 关闭文档和Word应用  workBook.Close();excelApp.Quit();Console.WriteLine("文档已成功转换为PDF格式。");}catch (Exception ex){Console.WriteLine("发生错误:" + ex.Message);}finally{// 释放COM对象  System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);workBook = null;excelApp = null;}}static void PPTToPdf(){// Excel应用程序对象  var pptApp = new Microsoft.Office.Interop.PowerPoint.Application();Microsoft.Office.Interop.PowerPoint.Presentation presentation = null;string root = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase ?? "";try{// 设置为不可见模式  pptApp.Visible = Microsoft.Office.Core.MsoTriState.msoFalse;var docPath = Path.Combine(root, "Document", "office.pptx");// 打开一个现有的Word文档  presentation = pptApp.Presentations.Open(docPath);// 将文档另存为PDF  string pdfPath = Path.Combine(root, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}_office.pdf");presentation.ExportAsFixedFormat(pdfPath,Microsoft.Office.Interop.PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF);// 关闭文档和Word应用  presentation.Close();pptApp.Quit();Console.WriteLine("文档已成功转换为PDF格式。");}catch (Exception ex){Console.WriteLine("发生错误:" + ex.Message);}finally{// 释放COM对象  System.Runtime.InteropServices.Marshal.ReleaseComObject(presentation);System.Runtime.InteropServices.Marshal.ReleaseComObject(pptApp);presentation = null;pptApp = null;}}}
}

测试

在这里插入图片描述

参考

https://blog.csdn.net/z542601362/article/details/45158215
https://www.cnblogs.com/5426z/articles/4865312.html
https://blog.csdn.net/qq_35620884/article/details/141326517
https://blog.csdn.net/lzp1990/article/details/138810685


http://www.mrgr.cn/news/14748.html

相关文章:

  • C++语法基础(二)
  • 【C++】set 容器最全解析(什么是 set? set容器的常用接口有那些?)
  • ThingsKit物联网平台与AIoTedge边缘计算平台的融合创新
  • 【Qt】网格布局管理器QGridLayout
  • UNI-APP 打包构建 APK
  • Delphi中的一种简单重载
  • Datawhale AI夏令营 第五期 CV方向 Task2笔记
  • python-旋转木马(赛氪OJ)
  • LlamaIndex 实现 Agent
  • Android Launcher启动过程
  • Autosar(Davinci) --- 创建一个OS TASK
  • 数学建模之数据分析【八】:数据预处理之数据格式化
  • 2024年8月23日(docker 数据存储)
  • 深度学习500问——Chapter13:优化算法(2)
  • Git拉取某个分支的指定文件
  • Django 中render、redirect 和 HttpResponse的区别
  • 系统分析师5-数据库特训专题
  • 基于yolov8的行人跌倒检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • K8s之自动扩缩容
  • Git相关指令