本文演示了如何使用C#将Excel(XLS、XLSX)文件转换为PDF格式。Adobe 开发的可移植文档格式 ( PDF ) 格式被许多组织用作共享和存储文档的标准。将文档导出为 PDF 是许多应用程序的常见场景。
用于 Excel 到 PDF 转换的 C# API
Aspose.Cells for .NET API 使将 Excel 电子表格转换为 PDF 变得轻而易举。您可以下载API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.Cells
在 C# 中将 Excel XLS 或 XLSX 转换为 PDF
Aspose.Cells for .NET提供易于使用的 API,您可以通过这些简单的步骤将 Excel 文件转换为 PDF。
- 使用要转换的 Excel 文档实例化Workbook类。
- 通过使用SaveFormat枚举指定保存格式为 PDF 以 PDF 格式保存文档
以下代码片段演示了如何在 C# 中将 Excel XLS 转换为 PDF。
// Instantiate the Workbook object with the Excel file
Workbook workbook = new Workbook("SampleExcel.xls");
// Save the document in PDF format
workbook.Save("outputPDF.pdf", SaveFormat.Pdf);
使用 C# 将 Excel 转换为符合 PDF/A 标准的 PDF
PDF/A 是 PDF 的 ISO 标准化版本,它禁止不适合长期存档的功能。像这样保存 PDF 可确保从长远来看不会破坏任何内容。
以下代码片段通过创建新工作簿并将其转换为符合 PDF/A 的 PDF 格式来演示此功能:
// Instantiate new workbook
Workbook workbook = new Workbook();
// Insert a value into the cell A1
workbook.Worksheets[0].Cells[0, 0].PutValue("Testing PDF/A");
// Define PdfSaveOptions
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
// Set the compliance type
pdfSaveOptions.Compliance = PdfCompliance.PdfA1b;
// Save the file
workbook.Save(dataDir + "output.pdf", pdfSaveOptions);
在 C# 中跟踪 Excel 到 PDF 的转换
Aspose.Cells for .NET 通过提供IPageSavingCallback接口提供跟踪转换进度的能力。您可以创建一个实现此接口的自定义类并将其实例分配给PdfSaveOptions.PageSavingCallback属性。
以下代码片段演示了如何使用 C# 跟踪 Excel 到 PDF 的转换进度。
//load the workbook
Workbook workbook = new Workbook("PagesBook1.xlsx");
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
//assign the custom class that implements IPageSavingCallback interface
pdfSaveOptions.PageSavingCallback = new TestPageSavingCallback();
workbook.Save("DocumentConversionProgress.pdf", pdfSaveOptions);
下面是实现了用于跟踪转换过程的IPageSavingCallback接口的自定义类。
public class TestPageSavingCallback : IPageSavingCallback
{
public void PageStartSaving(PageStartSavingArgs args)
{
Console.WriteLine("Start saving page index {0} of pages {1}", args.PageIndex, args.PageCount);
//pages before page index 2 are not rendered.
if (args.PageIndex < 2)
{
args.IsToOutput = false;
}
}
public void PageEndSaving(PageEndSavingArgs args)
{
Console.WriteLine("End saving page index {0} of pages {1}", args.PageIndex, args.PageCount);
//pages after page index 8 are not rendered.
if (args.PageIndex >= 8)
{
args.HasMorePages = false;
}
}
}
结论
在本文中,您学习了如何使用 C# 将 Excel XLSX 或 XLS 文件转换为 PDF。有关将 Excel 文件转换为 PDF 的更多信息,请转到我们的文档,将 Excel 工作簿转换为 PDF。如果您有任何疑问,请随时通过我们的论坛告诉我们。