没有办公室的Excel到PDF

我需要在我正在处理的Windows应用程序中生成PDF报告,我通过将.xlsx文件导出为pdf来完成此操作。 我目前正在使用互操作,但是:

  • 我需要这样做而不需要用户购买软件,因此没有微软办公室擅长。
  • 我也不能使用任何重依赖(如open / libre office)。
  • 该应用程序在.NET winforms中并且是本地的(不依赖于Internet连接)。

我试过的事情:

  • 我已经尝试过iTextSharp,但是这会像溢出列这样的东西变得非常复杂。
  • 试过closedXML但无法转换为PDF。
  • (如前所述)尝试互操作但无法找到办法让它独立于办公室。

将不胜感激,谢谢你提前:)

编辑:

iTextSharp的

我会使用它,除了我需要导出一个具有可变列数(最多30列)的大型DataTable,如果有很多列,那么处理该列溢出变得非常复杂,这在互操作中很容易。

阅读Aspose

看起来太贵了,因为我在一家目前资源非常有限的小公司工作。

不使用Excel来布局报表,而是使用HTML。 它更加灵活,几乎是为最终用户布置数据的最简单工具。 然后查找许多HTML到PDF解决方案之一(wkhtmltopdf,安装打印到pdf驱动程序等)

另一个好的选择是使用Spire.XLS。 虽然它会在顶部显示评估警告但你可以使用FreeSpire.XLS摆脱它。 以下是它的链接https://www.nuget.org/packages/FreeSpire.XLS/

以下是从中获取的代码段

https://forums.asp.net/t/2087645.aspx?Saving+xlsx+to+pdf

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Spire.Xls; namespace ConvertExcelToPdf { class Program { static void Main(string[] args) { Workbook workbook = new Workbook(); workbook.LoadFromFile(@"..\..\sample2.xlsx"); workbook.ConverterSetting.SheetFitToPage = true; workbook.SaveToFile(@"..\..\sample.pdf", FileFormat.PDF); System.Diagnostics.Process.Start(@"..\..\sample.pdf"); } } } 

使用OpenOffice和C#从excel生成PDF的替代解决方案:

使用C#生成PDF