C#利用NPOI导出Excel类(简单版)

时间:2024-09-03 09:06:38

代码:

using System.Data;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel; namespace ahwildlife.Utils
{
/// <summary>
/// Excel工具类
/// 利用NPOI生成Excel
/// </summary>
public class ExcelUtil
{
#region 生成Excel
/// <summary>
/// 生成Excel
/// </summary>
public static void CreateExcel(DataTable dt, string path)
{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = string.IsNullOrEmpty(dt.TableName) ? workbook.CreateSheet("Sheet1") : workbook.CreateSheet(dt.TableName);//创建工作表 #region 标题
IRow row = sheet.CreateRow();//在工作表中添加一行
for (int i = ; i < dt.Columns.Count; i++)
{
ICell cell = row.CreateCell(i);//在行中添加一列
cell.SetCellValue(dt.Columns[i].ColumnName);//设置列的内容
}
#endregion #region 填充数据
for (int i = ; i <= dt.Rows.Count; i++)//遍历DataTable行
{
DataRow dataRow = dt.Rows[i - ];
row = sheet.CreateRow(i);//在工作表中添加一行 for (int j = ; j < dt.Columns.Count; j++)//遍历DataTable列
{
ICell cell = row.CreateCell(j);//在行中添加一列
cell.SetCellValue(dataRow[j].ToString());//设置列的内容
}
}
#endregion #region 输出到Excel
MemoryStream ms = new MemoryStream();
workbook.Write(ms); using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
byte[] bArr = ms.ToArray();
fs.Write(bArr, , bArr.Length);
fs.Flush();
}
#endregion }
#endregion }
}