C#,使用NPOI库,将datatable转化成excel文件
时间: 2024-10-16 20:06:42 浏览: 65
在C#中,使用NPOI库(Apache POI的.NET版本)可以方便地将DataTable转换为Excel文件。以下是基本步骤:
1. 首先,你需要安装NPOI库。你可以通过NuGet包管理器添加`NPOI`和`NPOI.Excel`引用。
2. 创建一个DataTable实例,填充你想要导出的数据。
```csharp
using System.Data;
DataTable dataTable = new DataTable();
// 添加列并填充数据...
dataTable.Columns.Add("Column1", typeof(string));
dataTable.Rows.Add(new object[] { "Value1" });
```
3. 使用NPOI创建一个新的HSSFWorkbook对象,表示Excel工作簿。
```csharp
using NPOI.HSSF.usermodel;
using NPOI.OleDb;
HSSFWorkbook workbook = new HSSFWorkbook();
```
4. 创建一个新的HSSFSheet对象,代表工作簿中的一个工作表。
```csharp
HSSFSheet sheet = workbook.CreateSheet("Sheet1");
```
5. 将DataTable内容复制到工作表的行和列上。遍历DataTable的每一行,并将数据写入相应位置。
```csharp
foreach (DataRow row in dataTable.Rows)
{
int rowIndex = sheet.LastRowNum + 1; // 获取下一行的索引
for (int i = 0; i < dataTable.Columns.Count; i++)
{
HSSFCell cell = row[i].CreateCell(rowIndex, i);
cell.setCellValue((string)row[i]);
}
sheet.AddMergedRegion(new NPOI.ss.util.CellRangeAddress(rowIndex, rowIndex, 0, dataTable.Columns.Count - 1)); // 合并单元格
}
```
6. 最后,保存工作簿为Excel文件。
```csharp
usingFileStream = File.Create("output.xlsx");
workbook.Write(outputFileStream);
workbook.Close(); // 关闭工作簿
outputFileStream.Close(); // 关闭流
```
阅读全文