使用NPOI进行导出Excel表格大家基本都会,我在网上却很少找到导出Excel表格并提示下载的

简单的代码如下

         //mvc项目可以传多个id以逗号相隔的字符串
public ActionResult execl(string ids)
{
List<PayLog> list = new List<PayLog>();//准备需要灌入excel的数据,paylog可替换你自己的数据类,这里因为是源代码所以没改
string[] idsstring = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);//拆字符串
for (int j = ; j < idsstring.Length; j++)//查找需要灌入的数据放入list里,asp.net这里为从dal层拿到的数据同样放入list
{
string str = idsstring[j];
list.Add(DbSession.PayLogRepository.Fetch(x => x.FInvoiceId == str));//该写法为mvc写法,链接数据库读取数据对象
}
HSSFWorkbook work = new HSSFWorkbook();//创建excel文件对象
HSSFSheet sheet = work.CreateSheet();//创建excel里的页,括号中可以写你想要该页的名字,默认sheet
HSSFRow row = sheet.CreateRow();//创建当前页的第一行
row.CreateCell(, HSSFCell.CELL_TYPE_STRING).SetCellValue("流水号");//创建页面上第一行的第一列的数据
row.CreateCell(, HSSFCell.CELL_TYPE_STRING).SetCellValue("编码");
//循环对象集合创建数据列
for (int i = ; i < list.Count; i++)
{
HSSFRow rows = sheet.CreateRow(i + );//创建第二行
rows.CreateCell(, HSSFCell.CELL_TYPE_STRING).SetCellValue(list[i].FPayInNo);//创建第二行第一列
rows.CreateCell(, HSSFCell.CELL_TYPE_STRING).SetCellValue(list[i].FEnterpriseId);
}
string path = @"F:\信息.xls";//项目中应该改为相对路径而不是绝对路径 //因不知道用户的excel版本所以生成文件后缀为.xls,因为2003版的excel后缀名为.xls,2007版后均为.xlsx
using (FileStream file = new FileStream(path, FileMode.Create))//创建文件流,将灌好数据的excel文件写入服务器的硬盘
{
work.Write(file);
}
return File(new FileStream(path, FileMode.Open), "application/ms-excel", "信息.xls");//提示用户下载服务器上的文件

结果如图

最新文章

  1. C/C++编译链接过程详解
  2. WPF学习之绘图和动画
  3. yii2 advance 安装
  4. HTTP 请求头中的 X-Forwarded-For
  5. How to install and configure Azure PowerShell
  6. LeetCode Sort Colors (技巧)
  7. 10个有关RESTful API良好设计的最佳实践(转)
  8. 长沙Uber优步司机奖励政策(1月25日~1月31日)
  9. 面向新手的Webserver搭建(一)——IIS的搭建
  10. 【Java基础】setter与getter方法
  11. SxsTrace工具用法
  12. Quartz的cron表达式
  13. 当Ucenter和应用通信失败
  14. thymeleaf的onclick标签传参异常
  15. Allegro导入PADS文件
  16. 几种优化方法的整理(SGD,Adagrad,Adadelta,Adam)
  17. HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结
  18. m序列c语言实现
  19. 分类Category的概念和使用流程
  20. cesium 动态水面效果

热门文章

  1. Effective Java2读书笔记-类和接口(二)
  2. A51汇编器的解释
  3. MS Build参考
  4. uva 10401 Injured Queen Problem(dp)
  5. Best Meeting Point 解答
  6. 关于C++中覆盖,重载,隐藏的一点说明
  7. IBM发布JumpGate 连接OpenStack和公有云
  8. java项目获取路径的几种方式
  9. keil将程序装入外部FLASH具体解释
  10. BZOJ 2648/2716(SJY把件-KD_Tree)[Template:KD_Tree]