c#excel转pdf
时间: 2024-08-16 12:02:27 浏览: 98
C#将Excel转成PDF的方法
在C#中将Excel文件转换成PDF,通常需要借助第三方库来完成这个任务,因为C#标准库本身并不直接提供这样的功能。一个常用的工具是EPPlus,它是一个用于读写Microsoft Office Open XML (.xlsx)文件的强大库,而有一些库如iTextSharp、NReco.PdfGenerator等可以用来生成PDF。
以下是使用EPPlus和iTextSharp的一个简单示例:
```csharp
using OfficeOpenXml;
using iTextSharp.text;
using iTextSharp.text.pdf;
// 加载Excel文件
var excelPackage = new ExcelPackage(new FileInfo("input.xlsx"));
// 获取第一个工作表
var worksheet = excelPackage.Workbook.Worksheets;
// 将工作表数据转换为DataTable
var dataTable = worksheet.GetDataTable();
// 创建一个新的PDF文档
var pdfDoc = new Document();
using (var writer = PdfWriter.GetInstance(pdfDoc, new FileStream("output.pdf", FileMode.Create)))
{
// 打开PDF并开始写入
pdfDoc.Open();
// 遍历DataTable并在PDF中添加每个表格行
foreach (DataRow row in dataTable.Rows)
{
var cellValues = new List<string>();
foreach (var cell in row.ItemArray)
cellValues.Add(cell.ToString());
PdfPTable table = CreateTableFromData(cellValues);
table.WriteSelectedRows(0, 1, 0, 0, writer.DirectContentUnderlying);
}
// 关闭PDF
pdfDoc.Close();
}
private PdfPTable CreateTableFromData(List<string> data)
{
PdfPTable table = new PdfPTable(data.Count);
for (int i = 0; i < data.Count; i++)
{
table.AddCell(new Phrase(data[i]));
}
return table;
}
```
阅读全文