就上述代码再写一个datatable转化为excel的方法
时间: 2024-10-16 15:06:57 浏览: 24
当然可以。下面是一个将DataTable转换为Excel文件的基本方法,它包括创建一个新的Excel工作簿、写入数据以及保存文件。假设你已经有了一个`DataTable`对象`dataTable`,`worksheetName`是你想要的表的工作表名称,以及一个`excelFilePath`作为输出的Excel文件路径:
```csharp
using System.IO;
using NPOI.HSSF.usermodel;
using NPOI.SS.usermodel;
using NPOI.Util;
public void DataTableToExcel(DataTable dataTable, string worksheetName, string excelFilePath)
{
try
{
// 创建一个新的HSSFWorkbook
var workbook = new HSSFWorkbook();
// 获取工作表
ISheet sheet = workbook.CreateSheet(worksheetName);
// 写入列标题
var headerRow = sheet.CreateRow(0);
foreach (DataColumn column in dataTable.Columns)
{
Cell cell = headerRow.createCell(column.Ordinal);
cell.setCellValue(column.ColumnName);
}
// 写入数据行
int rowIndex = 1;
foreach (DataRow row in dataTable.Rows)
{
IRow dataRow = sheet.CreateRow(rowIndex++);
for (int i = 0; i < dataTable.Columns.Count; i++)
{
Cell cell = dataRow.createCell(i);
cell.setCellValue(row[i].ToString());
}
}
// 将工作簿写入到文件
using (FileStream outputStream = File.Create(excelFilePath))
{
workbook.Write(outputStream);
}
// 关闭工作簿
workbook.Close();
}
catch (Exception ex)
{
Console.WriteLine($"发生错误: {ex.Message}");
}
}
```
你可以像这样调用这个方法:
```csharp
DataTable dataTable = ...; // 你的DataTable实例
string worksheetName = "Sheet1";
string excelFilePath = @"D:\output\example.xlsx";
DataTableToExcel(dataTable, worksheetName, excelFilePath);
```
如果遇到关于NPOI的问题,或者需要进一步的指导,欢迎提问。
阅读全文