欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > C#操作ms office实现office转pdf

C#操作ms office实现office转pdf

2025/1/21 2:42:00 来源:https://blog.csdn.net/qq_36437991/article/details/141685119  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com