在实际工作中不可避免的会遇上统计、导出报表的工作,我自己整理了一份导出Excel代码放到这里,即为了分享知识,也是对自己的总结
首先导入依赖

     <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency>

poi依赖是用来操作Excel的依赖包

         <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.9</version></dependency>

poi-ooxml是poi的升级版

     <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.9</version></dependency>

poi-ooxml-schemas可以支持office2007文件, 一般的Excel操作有这三个就够用了

生成之后可以使用浏览器下载Excel的方式,也可以保存到本地,返回到浏览器要用到HttpServletResponse ,保存到本地则不用。
导出Excel代码:

  //第一步,创建一个HSSFWorkbook,对应一个Excel文件HSSFWorkbook  wb = new HSSFWorkbook();// 第二步,为工作簿创建一个新工作表,传入表名HSSFSheet sheet = wb.createSheet("测试");// 第三步,在sheet中添加表头第0行HSSFRow row = sheet.createRow(0);// 第四步,创建单元格样式,并设置值表头 设置表头居中HSSFCellStyle style = wb.createCellStyle();style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 创建一个居中格式//第五步创建字体样式Font headerFont = wb.createFont();//创建一个字体headerFont.setFontName("Arial");//设置字体的名称(如Arial)headerFont.setFontHeightInPoints((short) 12);//设置字体高度headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);//设置字体加粗headerFont.setColor(HSSFColor.BLACK.index);//设置字体的颜色style.setFont(headerFont);//应用该字体//创建一个合并的单元格对象sheet.addMergedRegion(new CellRangeAddress(0,0,0,2));//创建合并的单元格范围//在行中创建新的单元格并返回HSSFCell cell = row.createCell(0);cell.setCellValue("导出表单测试");//添加标题cell.setCellStyle(style);//将样式赋值//写入execl列标题//创建标题行row = sheet.createRow(1);//标题数据String[] title = {"测试列1","测试列2","测试列3"};for(int i=0;i<title.length;i++){cell = row.createCell(i);cell.setCellValue(title[i]);cell.setCellStyle(style);sheet.setColumnWidth(i, 20 * 256);}//创建内容String[] [] values =  {{"11","12","13"},{"21","22","23"},{"31","32","33"}};for(int i=0;i<values.length;i++){row = sheet.createRow(i + 2);//创建数据行for(int j=0;j<values[i].length;j++){//将内容按顺序赋给对应的列对象row.createCell(j).setCellValue(values[i][j]);}}

生成Excel完毕
下面是发送回浏览器,需要指定响应头

     //发送回浏览器  try (OutputStream os = response.getOutputStream();){//从response中获取输出流String fileName = new String("测试导出Excel.xls".getBytes(), "ISO8859-1");//准备好文件名response.setContentType("application/octet-stream;charset=ISO8859-1");//返回类型response.setHeader("Content-Disposition", "attachment;filename=" + fileName);//设置响应头response.addHeader("Pargam", "no-cache");response.addHeader("Cache-Control", "no-cache");wb.write(os);//写出到浏览器os.close();//关闭流} catch (IOException e) {e.printStackTrace();}catch (Exception ex) {ex.printStackTrace();}

这样导出Excel到浏览器就完成了
下面是保存到本地

             try {File file = new File("D://upFiles/" + "files/");if (!file.exists()) {file.mkdirs();// 创建文件根目录}String savePath = file.getPath() +"/test.xls";OutputStream os = new FileOutputStream(savePath);wb.write(os);os.flush();os.close();} catch (Exception e) {e.printStackTrace();}

java使用poi导出Excel表发回浏览器或是保存到本地相关推荐

  1. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  2. java利用poi导出excel功能-附带图片导出

    java利用poi导出excel功能-附带图片导出 写在前面 最近刚离职,闲来无事,于是把上两家公司都有碰到过的需求但都没有去研究实现:即导出带图片的excel报表.于是就折腾了一下这个功能,研究出来 ...

  3. 使用poi导出excel表基础

    使用poi导出excel表基础. 本人使用的是ssm的框架.使用了mybatis的逆向工程.数据的获取方法很多,如果用servlet大同小异. 在页面中设置一个按钮 为按钮添加点击事件. <bu ...

  4. Java操作poi导出Excel自定义字体颜色

    Java操作poi导出Excel自定义字体颜色 功能介绍 POI操作Excel 第一步创建一个导出的工具类 整体定义表格字体样式 自定义表格字体样式 总结 功能介绍 Apache POI 是用Java ...

  5. JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls)

    JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls) *** POI的结构: ---*HSSF - 提供读写Microsoft Excel格式档案的功能. ---*XSSF - ...

  6. Java和poi导出excel报表

    一:poi jar下载地址:点击打开链接: 二:工程截图: 三:运行效果截图: 四:源代码: Student.java: package com.poi.bean;import java.util.D ...

  7. Java使用POi导出Excel(包含图片)

    Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...

  8. 摘抄:java查询数据导出excel并返回给浏览器下载

    maven地址为: <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml ...

  9. poi导出excel 损坏_急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误,数据可能丢失”...

    展开全部 两个原因: 1.你的excel模版本身有问题,可以尝试新建一个模版. 2.你的excel使用了一e68a8462616964757a686964616f31333365643662些POI不 ...

最新文章

  1. Oracle RMAN 设置和配置(一)
  2. 有理贝塞尔曲线(Rational Bezier Curves)
  3. linux网卡O I流量查询,查看linux server网络I/0流量的shell脚本
  4. Ehcache 整合Spring 使用页面、对象缓存
  5. 区块链浏览器_区块链FBI——如何用区块链浏览器追踪链上数据
  6. C++语言基础 —— STL —— 容器与迭代器 —— set 与 multiset
  7. python的json dump_python中json.dump和json.dumps的区别
  8. Shell脚本实现模拟并发及并发数控制
  9. 牛客 黑龙江大学程序设计竞赛重现 19-4-25 D
  10. 最热BMS可直接下载!!
  11. 通信总线-现场总线-CAN
  12. Vue-电子签名(E-Signature)
  13. 和平精英镜头灵敏度怎么调到最稳呢
  14. 记深信服2018秋季校园招聘--技术服务工程师
  15. # Classification: Accuracy(准确率)
  16. 客快物流大数据项目(六十七):客户主题
  17. 什么是Arduino
  18. 解压缩后点击解压.html,如何使用压缩、解压缩软件(WINRAR、ZIP)进行文件的压缩和解压...
  19. 博客大巴,自动登录,并发布信息开发小计。
  20. 【2017.11.15】设计师的正确工作流程

热门文章

  1. Postgresql 1小时快速入门
  2. Houdini 使用 Vscode 写 Vex 脚本
  3. 免费的运维服务器,服务器运维, 卓豪ManageEngine
  4. 2020清华大学计算机系夏令营机试
  5. osg编译方法(CMake_gui的使用)
  6. vue多个关键字高亮
  7. 一起赚美元⑤ | Instapainting照片转油画服务,通过SEO优化,每月赚取3.2万美元的真实案例
  8. 华东师范大学 数据科学与工程 829 2021考研真题
  9. php中实现图片自动轮播,基于vue.js实现图片轮播效果
  10. 怎么把两段音频合成一段-快速合并音频文件