C#Excel Interop – 调用Worksheet.ExportAsFixedFormat时禁止“发布”对话框

我正在使用Excel Interop打开一个xlsx文件并将其保存为pdf文档。 在调用“ExportAsFixedFileFormat”方法后,会显示一个标题为“发布”的对话框来表示进度。 我怎样才能压制或隐藏这个对话框? 我在其他论坛上看到了一些类似的问题,但没有一个令人满意的解决scheme,但希望有人从那以后解决了这个问题。

在这里输入图像说明

码:

Application application = new Application(); application.DisplayAlerts = false; // <- No effect application.Visible = false; // <- No effect application.ScreenUpdating = false; // <- No effect application.UserControl = false; // <- No effect application.Workbooks.Open(path, Type.Missing, true); application.DisplayDocumentActionTaskPane = false; // <- No effect application.Worksheets[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, path); 

也许我没有回答你的问题,但我会尽力帮助你。 据我所知,不build议在后台处理中使用Excel Interop。 你遇到了一个问题,但也有一些问题。 有第三方的select与Excel格式进行交互,其中一些是开源的,一些是商业的。 我强烈build议看看其中的一个: ClosedXML和NPOI 。 两者都是开源的和免费的。

如何在BackgroundWorker上处理它。 这不会抛出COMEXCEPTION 。 我试着按下这个代码点击button,它的工作原理没有显示progress dialog

 var worker = new BackgroundWorker(); worker.DoWork += (o, args) => { var path = @"D:\sample.xlsx"; var application = new Microsoft.Office.Interop.Excel.Application(); application.Workbooks.Open(path, Type.Missing, true); application.Worksheets[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, path); }; worker.RunWorkerAsync(); 

您可以使用pedamorf库,pedamorf是一个服务器,将文件,图像,url,HTML和文本转换为PDF。 它非常依赖优秀的开源程序wkhtml2pdf,Libre Office和iTextSharp。 提供了一个客户端库,可以从.NET应用程序中使用,以利用pedamorf提供的转换服务。

更多信息在这里

到目前为止,更好的API来处理(创build,读取,导出到PDF / HTML等)我知道的XLS / XLSX文件是FlexCel。 这非常简单,令人难以置信的快速和完整的C#写入。 不要求Excel安装。

您可以在这里find它: http : //www.tmssoftware.com/site/flexcelnet.asp (获取带有源代码的很多示例的试用版)

如果你的项目中有预算来获得许可证,我真的很推荐。