c#使用NPOI将一个datagridview导出成excel
时间: 2024-02-24 14:56:29 浏览: 231
可以通过以下代码将 DataGridView 中的数据导出到 Excel 中:
```csharp
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.Data;
using System.Windows.Forms;
using System.IO;
private void ExportToExcel(DataGridView dataGridView)
{
// 创建工作簿
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
// 创建表头行
IRow headerRow = sheet.CreateRow(0);
for (int i = 0; i < dataGridView.Columns.Count; i++)
{
headerRow.CreateCell(i).SetCellValue(dataGridView.Columns[i].HeaderText);
}
// 填充数据
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
DataGridViewRow dataGridViewRow = dataGridView.Rows[i];
IRow row = sheet.CreateRow(i + 1);
for (int j = 0; j < dataGridViewRow.Cells.Count; j++)
{
row.CreateCell(j).SetCellValue(dataGridViewRow.Cells[j].Value.ToString());
}
}
// 保存文件
using (var saveFileDialog = new SaveFileDialog())
{
saveFileDialog.Filter = "Excel文件|*.xlsx";
saveFileDialog.Title = "保存Excel文件";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
using (var fs = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
{
workbook.Write(fs);
}
}
}
}
```
以上代码将 DataGridView 中的数据导出到一个新创建的 Excel 文件中,并使用 SaveFileDialog 对话框让用户选择保存的文件名和路径。注意需要引用 NPOI 库和 System.IO 库。
阅读全文