Excel 转 PDF
C# Excel操作库有:
-
EPPLUS (商用收费,EPPLUS.Core 1.5.4 免费)
-
NOPI (开源免费)
-
Spire.Xls (商用收费,有免费的Free.Spire.Xls 有部分功能受限)
这里使用的转换库就是免费的 Free.Spire.Xls 。
Tips:官方说免费版只能将Excel的前三页转成PDF。
Free Spire.XLS for .NET | 免费的 .NET Excel 组件,在 C#, VB.NET, ASP.NET 中处理 Excel 文档 (e-iceblue.cn)
生成 Excel 的库可以是任意的。最后都可以通过 Free.Spire.Xls 来转换。转换效果也比较好,几乎保留了所有的样式。
using OfficeOpenXml; // EPPLUS 库
using Spire.Xls; // Free.Spire.Xls 库
public void ExcelToPDF(string pdfPath)
{
// 创建一个Excel的临时文件
string tempFilePath = Path.GetTempFileName();
string excelTempFilePath = Path.ChangeExtension(tempFilePath, ".xlsx");
// 创建文件流
FileStream fileStream = new FileStream(tempFilePath, FileMode.Create);
ExcelPackage excelPkg = new ExcelPackage(fileStream);
// 在Excel中写入数据
ExcelWorksheet worksheet = excelPkg.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells["A1:A10"].Value = 100;
// 保存Excel文件 临时文件
excelPkg.Save();
excelPkg.Dispose();
// 使用Free.Spire.Xls打开临时 Excel 文件
Workbook workbook = new Workbook();
workbook.LoadFromStream(fileStream);
Worksheet sheet = workbook.Worksheets[0];
// Excel 转 PDF (只能转前3页)
sheet.SaveToPdf(pdfPath);
fileStream.Close();
}
上面这个只是一个 Excel 转 PDF 的方案。也可以不使用 EPPLUS 库,直接只有 Free.Spire.xls 库来生成 Excel。