1.要声明创建excel文件的对象
HSSFWorkbook workbook = new HSSFWorkbook();//创建一个excel文件
ISheet sheet = workbook.CreateSheet("sheet1");//创建一个sheet
IRow row = null;//设置行
ICell cell = null;//设置单元格
2.给excel填充首行数据
//创建第一行
row = sheet.CreateRow(0);
//创建第一列
cell = row.CreateCell(0);
//给第一列赋值
cell.SetCellValue("类型");
//创建第二列
cell = row.CreateCell(1);
//给第二列赋值
cell.SetCellValue("数量");
2.从数据库将值查询出来依次添加到
(listHouse是从数据库中查询出来的集合每个类包含2个属性
ParameterName和
Count)
表格中
for (int i = 0; i < listHouse.Count; i++)
{
row = sheet.CreateRow(i+1);//第几行
row.CreateCell(0).SetCellValue(listHouse[i].ParameterName);//第一个单元格
row.CreateCell(1).SetCellValue(listHouse[i].Count);//第二个单元格
// soure和count要和前台对应file
//var housepa = new { soure = listHouse[i].ParameterName, count = listHouse[i].Count };
//list.Add(housepa);
}
3.将excle填充完毕后导出
MemoryStream ms = new MemoryStream();//声明一个内存流
workbook.Write(ms);//将文件写入流中
context.Response.ContentType = "application/vnd.ms-excel";//输入的格式
//文件信息(文件头)attachment设置文件为打开 保存对话框
context.Response.AddHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(type, System.Text.Encoding.UTF8) +
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
context.Response.BinaryWrite(ms.ToArray());//字节格式输入
context.Response.End();
workbook = null;
ms.Close();//关闭流
ms.Dispose();//释放资源