导出数据到Excel

使用NPOI从数据库中导出数据到Excel
添加NPOI.dll程序集
下面:步骤解析
首先拿到要导出的数据Data,定义好Excel模板(名称:FileName)(可以放在本地)
1、往Excel模板中填充内容

WriteToFile(Data, FileName);

//FileStream 对象读取出来的是字节数组,然后通过编码转换将字节数组转换成字符串。
 FileStream file = new FileStream(FileName, FileMode.Open, FileAccess.Read);

FileMode:规定了如何打开或创建文件
FileAccess:指定了流的作用

成员说明
Read打开文件,用于只读
Write打开文件,用于只写
ReadWrite打开文件,用于读写

1)创建Excel对象

//HSSFWorkbook表示以xls为后缀名的文件,还有XSSFWorkbook
HSSFWorkbook hssfworkbook = new HSSFWorkbook(file);

2)创建页

NPOI.SS.UserModel.ISheet ws = hssfworkbook.createSheet("Attendance");  

3)创建行和操作单元格对象
具体内容根据自己的需求来放入数据。

//创建行,Row(0):表头
IRow row = ws.CreateRow(i);
//创建单元格
 ICell cell = row.CreateCell(k);
//设置单元格的值  
cell.setCellValue("单元格中的中文");  

2、在浏览器下载Excel

DownloadFile(this.Page, FileName);

使用刚才写好的FileName
1)以字符流的形式下载文件

  FileStream fs = new FileStream(FileName, FileMode.Open);
  byte[] bytes = new byte[(int)fs.Length];
  fs.Read(bytes, 0, bytes.Length);
  fs.Close();

2)通知浏览器下载文件而不是打开

page.Response.ContentType = "application/octet-stream";
page.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(System.IO.Path.GetFileName(strFile).Trim(), System.Text.Encoding.UTF8));
page.Response.BinaryWrite(bytes);
page.Response.Flush();
 HttpContext.Current.ApplicationInstance.CompleteRequest();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值