Excel 到 PDF 无需办公

use*_*497 5 .net c# pdf xlsx winforms

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

  • 我需要在不需要用户购买软件的情况下执行此操作,因此没有 microsoft office excel。
  • 我也不能使用任何重度依赖项(例如 open/libre office)。
  • 该应用程序在 .NET winforms 中并且是本地的(不依赖于互联网连接)。

我尝试过的事情:

  • 我已经尝试过 iTextSharp,但这会因为列溢出之类的事情变得非常复杂。
  • 尝试了 closedXML 但无法转换为 PDF。
  • (如前所述)尝试了互操作,但找不到使其独立于办公室的方法。

帮助将不胜感激,在此先感谢您:)

编辑:

夏普

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

Aspose

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

THu*_*ter 7

另一个不错的选择是使用 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"); 
        } 
    } 
} 
Run Code Online (Sandbox Code Playgroud)


mbe*_*ish 2

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