1.添加引用
NPOI文件下载
链接:https://pan.baidu.com/s/1c9KBCGSabpWsneY7_Z2Qqw
提取码:f3ay
2.代码
#region Table导出到Excel文件
/// <summary>
/// DataTable导出到Excel文件
/// </summary>
/// <param name="dtSource">源DataTable</param>
/// <param name="strHeaderText">表头文本</param>
/// <param name="strFileName">保存位置</param>
private void btn2_Click(object sender, EventArgs e)
{
saveFileDialog1.DefaultExt = "xls";
saveFileDialog1.Filter = "Excel 文件(x.xls)|*.xls";
string file = string.Empty;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
file = saveFileDialog1.FileName;
}
IWorkbook workbook;
string fileExt = Path.GetExtension(file).ToLower();
if (fileExt == ".xlsx")
{
workbook = new XSSFWorkbook();
}
else if (fileExt == ".xls")
{
workbook = new HSSFWorkbook();
}
else
{
workbook = null;
}
if (workbook == null)
{
return;
}
ISheet sheet = string.IsNullOrEmpty(table.TableName)
? workbook.CreateSheet("Sheet1")
: workbook.CreateSheet(table.TableName);
//表头
IRow row = sheet.CreateRow(0);
for (int i = 0; i < table.Columns.Count; i++)
{
ICell cell = row.CreateCell(i);
cell.SetCellValue(table.Columns[i].ColumnName);
}
//数据
for (int i = 0; i < table.Rows.Count; i++)
{
IRow row1 = sheet.CreateRow(i + 1);
for (int j = 0; j < table.Columns.Count; j++)
{
ICell cell = row1.CreateCell(j);
cell.SetCellValue(table.Rows[i][j].ToString());
}
}
//转为字节数组
MemoryStream stream = new MemoryStream();
workbook.Write(stream);
var buf = stream.ToArray();
//保存为Excel文件
using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write))
{
fs.Write(buf, 0, buf.Length);
fs.Flush();
}
}
#endregion
转载自某大牛的博客~