WPF 使用 NPOI 导出 DataTable 到 Excel
下面是一个使用 NPOI 导出 DataTable 到 Excel 的例子:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Data;
using System.IO;
using System.Windows;
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ExportButton_Click(object sender, RoutedEventArgs e)
{
// 创建Excel文档
var workbook = new HSSFWorkbook();
var sheet = workbook.CreateSheet('Sheet1');
// 创建表头
var headerRow = sheet.CreateRow(0);
for (int i = 0; i < dataTable.Columns.Count; i++)
{
var cell = headerRow.CreateCell(i);
cell.SetCellValue(dataTable.Columns[i].ColumnName);
}
// 填充数据
for (int i = 0; i < dataTable.Rows.Count; i++)
{
var row = sheet.CreateRow(i + 1);
for (int j = 0; j < dataTable.Columns.Count; j++)
{
var cell = row.CreateCell(j);
cell.SetCellValue(dataTable.Rows[i][j].ToString());
}
}
// 保存文件
var saveFileDialog = new Microsoft.Win32.SaveFileDialog();
saveFileDialog.FileName = 'data.xls';
saveFileDialog.Filter = 'Excel文件|*.xls';
if (saveFileDialog.ShowDialog() == true)
{
using (var fs = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
{
workbook.Write(fs);
}
}
}
private DataTable dataTable;
private void LoadButton_Click(object sender, RoutedEventArgs e)
{
// 从数据库中加载数据
var connectionString = 'Data Source=.;Initial Catalog=mydb;Integrated Security=True';
var sql = 'SELECT * FROM mytable';
var adapter = new SqlDataAdapter(sql, connectionString);
dataTable = new DataTable();
adapter.Fill(dataTable);
// 显示数据
dataGrid.ItemsSource = dataTable.DefaultView;
}
}
}
在这个例子中,我们使用了 NPOI 的 HSSFWorkbook 类来创建 Excel 文档,CreateSheet 方法创建了一个名为 'Sheet1' 的工作表,CreateRow 方法创建了一个行,CreateCell 方法创建了一个单元格,并使用 SetCellValue 方法设置了单元格的值。
我们首先创建了表头,然后填充了数据。最后,我们使用 SaveFileDialog 类来让用户选择保存文件的路径和名称,然后使用 FileStream 来保存 Excel 文档。
在我们使用 NPOI 之前,需要先安装 NPOI 库。可以在 NuGet 包管理器中搜索 'NPOI' 来安装。
原文地址: https://www.cveoy.top/t/topic/ov2A 著作权归作者所有。请勿转载和采集!