// 使用 NPOI 创建 PDF 文件 FileStream pdfStream = new FileStream("output.pdf", F
时间: 2024-02-07 13:04:19 浏览: 42
以下是使用NPOI将Excel文件转换为PDF文件的示例代码:
```csharp
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.SS.Util;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
//读取Excel文件
using (FileStream stream = new FileStream("path/to/excel/document", FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = null;
if (Path.GetExtension("path/to/excel/document").Equals(".xls"))
{
workbook = new HSSFWorkbook(stream);
}
else if (Path.GetExtension("path/to/excel/document").Equals(".xlsx"))
{
workbook = new XSSFWorkbook(stream);
}
//将Excel文件转换为PDF格式
using (FileStream pdfStream = new FileStream("path/to/pdf/document", FileMode.Create, FileAccess.Write))
{
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(pdfDoc, pdfStream);
pdfDoc.Open();
for (int i = 0; i < workbook.NumberOfSheets; i++)
{
ISheet sheet = workbook.GetSheetAt(i);
if (sheet == null) continue;
pdfDoc.NewPage();
PdfPTable table = new PdfPTable(sheet.GetRow(0).LastCellNum);
for (int j = 0; j < sheet.GetRow(0).LastCellNum; j++)
{
string cellValue = sheet.GetRow(0).GetCell(j).ToString();
table.AddCell(new Phrase(cellValue));
}
for (int k = 1; k <= sheet.LastRowNum; k++)
{
IRow row = sheet.GetRow(k);
if (row == null) continue;
for (int l = 0; l < row.LastCellNum; l++)
{
string cellValue = row.GetCell(l).ToString();
table.AddCell(new Phrase(cellValue));
}
}
pdfDoc.Add(table);
}
pdfDoc.Close();
}
}
```
该代码使用了iTextSharp库来将Excel文件转换为PDF格式,并且支持同时转换多个Sheet。