需求:有一张用户表,现在需要点击导出数据按钮,将这个张表的数据导出到本地Execl表格中。
实现:使用NPOI组件。在项目中使用Nuget管理器安装NPOI
代码如下:
private void btnDC_Click(object sender, EventArgs e)
{
string Desktop = @"C:\Users\Administrator\Desktop\" + DateTime.Now.Second + ".xlsx"; //文件命名用秒命名
IWorkbook wb = new XSSFWorkbook();
ISheet sheet = wb.CreateSheet("人员信息");
DataTable dt = SqlHelper.ExecuteQuery("select * from t_users");
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
IRow iRow = sheet.CreateRow(i);
iRow.CreateCell(0).SetCellValue(row[0].ToString());
iRow.CreateCell(1).SetCellValue(row[1].ToString());
iRow.CreateCell(2).SetCellValue(row[2].ToString());
iRow.CreateCell(3).SetCellValue(row[3].ToString());
iRow.CreateCell(4).SetCellValue(row[4].ToString());
iRow.CreateCell(5).SetCellValue(row[5].ToString());
iRow.CreateCell(6).SetCellValue(row[6].ToString());
}
using (FileStream fs = File.OpenWrite(Desktop))
{
wb.Write(fs);
System.Diagnostics.Process.Start(Desktop);//这样可以在数据写入完成之后使用进程打开这个execl表格
}
}
理想效果完成