我需要在我正在开发的 Windows 应用程序中生成 PDF 报告,我通过将 .xlsx 文件导出为 pdf 来完成此操作。不过,我目前正在为此使用互操作:
- 我需要在不要求用户购买软件的情况下执行此操作,因此不需要 Microsoft Office Excel。
- 我也不能使用任何严重的依赖项(例如开放/自由办公室)。
- 该应用程序位于 .NET winforms 中并且是本地的(不依赖于互联网连接)。
我尝试过的事情:
- 我尝试过 iTextSharp 但这变得非常复杂
就像溢出的柱子一样。
- 尝试了 closeXML 但无法转换为 PDF。
- (如前所述)尝试了互操作,但找不到使其独立于 Office 的方法。
帮助将不胜感激,提前谢谢你:)
edits:
iTextSharp
我会使用它,除非我需要导出一个具有可变数量的大数据表
列(最多 30 列),如果列很多,那就变得非常复杂
处理列溢出,这在互操作中很容易。
Aspose
似乎太贵了,因为我在一家小公司工作,目前资源非常有限。
另一个不错的选择是使用 Spire.XLS。虽然它会在顶部显示评估警告,但您可以使用 FreeSpire.XLS 摆脱它。下面是它的链接https://www.nuget.org/packages/FreeSpire.XLS/ https://www.nuget.org/packages/FreeSpire.XLS/
下面是摘自的代码片段
https://forums.asp.net/t/2087645.aspx?Saving+xlsx+to+pdf 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");
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)