1. /**
  2. * 导出excel2007版本
  3. *
  4. * @param titles
  5. * 表头集合
  6. * @param sheetNames
  7. * sheet名称
  8. * @param datas
  9. * 数据集合
  10. * @param fileName
  11. * 文件名字
  12. * @param response
  13. * 输出流
  14. * @return String
  15. */
  16. public static String exportExcel07(List<List<String>> titles, List<String> sheetNames, List<List<List<String>>> datas,
  17. String fileName, HttpServletResponse response) {
  18.  
  19. SXSSFWorkbook wb = new SXSSFWorkbook();
  20. CellStyle style = POIUtils.getCellStyleFont(wb, null);
  21. DataFormat format = wb.createDataFormat();
  22. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  23. style.setDataFormat(format.getFormat("@"));
  24. for (int i = 0; i < titles.size(); i++) {
  25. List<String> title = titles.get(i);
  26.  
  27. Sheet sheet = wb.createSheet(sheetNames.get(i));
  28.  
  29. Row row = sheet.createRow((int) 0);
  30.  
  31. for (int j = 0; j < title.size(); j++) {
  32. Cell cell = row.createCell(j);
  33. cell.setCellStyle(style);
  34. cell.setCellType(HSSFCell.CELL_TYPE_STRING);
  35. cell.setCellValue(title.get(j));
  36. }
  37. int size = datas.size();
  38. if(size>0){
  39. List<List<String>> data = datas.get(i);
  40. int k = 1;
  41. for (int j = 0; j < data.size(); j++) {
  42. row = sheet.getRow(k + j);
  43. if (null == row) {
  44. row = sheet.createRow(k + j);
  45. }
  46.  
  47. List<String> data_ = data.get(j);
  48.  
  49. for (int l = 0; l < data_.size(); l++) {
  50. Cell cell = row.createCell(l);
  51.  
  52. cell.setCellStyle(style);
  53. cell.setCellType(HSSFCell.CELL_TYPE_STRING);
  54. cell.setCellValue(data_.get(l));
  55. }
  56. }
  57. }
  58. }
  59.  
  60. try {
  61. //response.setContentType("application/octet-stream;charset=ISO8859-1");
  62. response.reset();
  63. // response.setContentType("application/vnd.ms-excel;charset=ISO8859-1");
  64. response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
  65. response.setHeader("Content-Disposition",
  66. "attachment;filename=" + new String(fileName.getBytes("GBK"), "iso8859-1"));
  67. response.addHeader("Pargam", "no-cache");
  68. response.addHeader("Cache-Control", "no-cache");
  69. try {
  70. OutputStream os = response.getOutputStream();
  71. wb.write(os);
  72. os.flush();
  73. os.close();
  74. } catch (IOException e) {
  75. e.printStackTrace();
  76. }
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. }
  80. return null;
  81. }

poi导出excel2007版本的更多相关文章

  1. NPOI 导出Excel2007版本时出现流已关闭问题

    NPOI生产.xlsx文件件时,在使用book.Write(ms);后,会关闭流,这样导致再次使用Respons输出流的时候就出错了. 我看到一些网友提供的解决办法是: public class NP ...

  2. 23.POI导出

    POI导出 XSSFWorkbook 对应Excel2007版本及以上 HSSFWorkbook 对应Excel2003版本 还要注意一点,不要用Swagger-ui测试导出的表格,这样的表格文件都是 ...

  3. 使用POI导出EXCEL工具类并解决导出数据量大的问题

    POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...

  4. Poi导出Excle

    场景 准备金系统需要从数据库读取大量数据存放到List集合中(可能还会做逻辑上的处理),并生成一个Excle文件,下载到客户本地. 问题一:客户体验 如果导出的文件比较大,比如几十万条数据,同步导出页 ...

  5. POI导出EXCEL经典实现

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

  6. POI导出数据内存溢出问题

    POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好.3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWo ...

  7. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  8. POI导出Excel(xls、xlsx均可以,也支持图片)——(三)

    Jar包

  9. POI导出EXCEL经典实现(转)

    http://www.cnblogs.com/xwdreamer/archive/2011/07/20/2296975.html 1.Apache POI简介 Apache POI是Apache软件基 ...

随机推荐

  1. oj.zstu 4421交税(合数分解成素数)

    题目 题意:T组,每一组输入一个数X,  求X最少能分成几个素数的和,输出. 思路: 对于一个大于2的偶数,由哥德巴赫猜想,一定能分成2个素数. 对于一个奇数来说,一定能分成2个或者3个素数之和.如果 ...

  2. [原创]extjs htmleditor增加截图快速粘贴功能 插件

    因客户需求,需要QQ截图后,能直接粘贴到htmleditor编辑器中,不要保存本地文件再上传,再插入到编辑器,太过麻烦. 常规做法:QQ截图-->选择保存路径-->确定保存文件--> ...

  3. Oracle使用游标查询所有数据表备注

    功能作用:应用对应的SQL语句,能方便快速的查询Oracle数据库指定用户的所有用户表说明,快速知道每个数据表是做什么的,方便写文档和方案. 运行环境:搭建好Oracle数据库,并使用PQ/SQL D ...

  4. m_strcmp

    strcmp比较两个字符串的大小,strcmp(str1, str2); 从str1和str2的第一个元素比较直到出现不同,或者遇到'\0'结束.如果str1 > str2 返回正数,str1 ...

  5. matlab(2) Logistic Regression: 画出样本数据点plotData

    画出data数据 data数据 34.62365962451697,78.0246928153624,030.28671076822607,43.89499752400101,035.84740876 ...

  6. Vue 之 slot(插槽)

    前言: vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项在使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧 ...

  7. 前端面试题-JavaScript

    引用GitHub 上 ltadpoles的前端面试 https://github.com/ltadpoles 目录  1. JavaScript 有哪些数据类型  2. 怎么判断不同的JS数据类型   ...

  8. UWB DWM1000 开源项目框架

    UWB 目前比较火热,不论国内还是国外目前都掀起一股热潮. 但是实际工程代码很少,开源代码更少. 目前代码主要有 1 DecaWave Release的定位源码,代码基于TWR,一个非常大的状态机. ...

  9. 002_软件安装之_keil4与keil5共存

    目的:实现keil4和keil5的共存 1. Keil4 主要用来开发 C51 程序 2. Keil5 也就是 MDK 主要用来开发 ARM 芯片,如 STM32 系列芯片 3. 资料下载地址:链接: ...

  10. Oracle 与 postgreSQL 事务处理区别(多版本与undo区别)

    2015年左右,因为工作需要用MongoDB.CouchBase这两种文档型数据库,时不时到这两个数据库官网上查资料.报BUG.时常可以在MongoDB官网上看到这样一些新闻,“某某企业成功将MySQ ...