这里使用的是2.5.5版本 新版本有些方法参数与我查询到的不一致所以没用最新版
IWorkbook excel = new HSSFWorkbook();
ISheet sheet;
IRow row;
//保存文件位置
string SavePath = "";
//导入excel名称
string filename = "";
//写入表名称
sheet = excel.CreateSheet("sheet表名称");
//创建第一行标题
row = sheet.CreateRow(0);
//从左往右 ...
for (int i = 0; i < CurrnowSorce.Columns.Count; i++)
{
row.CreateCell(i).SetCellValue(CurrnowSorce.Columns[i].Caption);
}
//存Excel的文件夹,先在项目中新建好,
SavePath = Application.StartupPath;
//这个Excel文件的名称
filename = $"xx记录导出记录";
//写入DataTable中的数据
for (int i = 0; i < CurrnowSorce.Rows.Count; i++)
{
//由于第一行写标题了所以是从第二行开始
row = sheet.CreateRow(i + 1);
//写这一行的数据
for (int j = 0; j < CurrnowSorce.Columns.Count; j++)
{
//同理也是从左往右写入数据
row.CreateCell(j).SetCellValue(CurrnowSorce.Rows[i][j].ToString());
sheet.AutoSizeColumn(j);
}
}
//保存Excel的路径和文件名称拼接
if(!Directory.Exists(SavePath + @"\excel\"))
{
Directory.CreateDirectory(SavePath + @"\excel\");
}
string url = SavePath + @"\excel\" + filename + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
//写入文件
FileStream xlsfile = new FileStream(url, FileMode.Create);
excel.Write(xlsfile);
xlsfile.Close();
小白为了省事 这里有很多地方都写死了 有需要请自行修改 水平较低难免会有地方写的不好导致出现bug哈