Java中使用HSSFWorkbook POI导出下载excel文件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、单元格的合并
- 二、表格的生成和导出
- 1.后端代码
- 2.前端代码
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
最近遇到一个需求需要自己手动写一个网页数据导出excel文件并下载;在此前一直使用的是SXSSFWorkbook,但是有些excel的样式使用不是很清楚,所以找到了HSSFWorkbook。在网上网上查询了一下分享的样例,再结合公司同事以前写过类似功能,最后将这个需求给搞定了,在此记录一下自己的一些使用示例。
一、单元格的合并
开始在网上搜索时发现大部分都是只介绍了一点标题的合并,但是都描述的不是很清楚,然后照着写出来果然就有问题;然后自己又仔细的搜索了下终于找到一些比较详细的描写示例;
代码如下:
rowTwo.createCell(0).setCellValue("盘存日期:"+ LocalDate.now());
CellRangeAddress region1 = new CellRangeAddress(1, 1, 0, 7);
sheet.addMergedRegion(region1);
rowTwo.createCell(8).setCellValue("单位:元");
CellRangeAddress region2 = new CellRangeAddress(1, 1, 8, 12);
sheet.addMergedRegion(region2);
可以看到我们合并单元格的关键就在于四个参数,分别是 合并起始行、合并终止行、合并起始列、合并终止列;就是以excel左上角第一个单元格坐标为(0,0)为参照。然后需要注意的是下一个单元格的column要从上一个合并单元格的最后一列开始往下排,例如我的合并到第7列,那我下一个就从8开始创建;
二、表格的生成和导出
1.后端代码
代码如下(示例):
response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");response.addHeader("Content-Disposition","attachment;filename=" + new String((fileName + ".xls").getBytes("gb2312"), "ISO8859-1"));OutputStream outp = response.getOutputStream();workbook.write(response.getOutputStream());outp.flush();outp.close();
这里主要是注意下response的编码格式
2.前端代码
代码如下(示例):
location.href="${pageContext.request.contextPath}/***/download.do?"+pp;
前端请求开始我没有加上${pageContext.request.contextPath},导致一直返回的乱码,无法导出,后续又查询了一下,才发现还要加上,然后就导出成功。
总结
其实代码都比较简单,思路也是比较简单,就是将页面查询条件传回接口,然后将不分页的数据全部获取到后填充到表格中,最好通过流导出下载即可。只是第一次遇到就记录了一下,很多也是细节需要注意的,稍微没注意到可能生成的表格样式就不一样了。希望能有帮助!
Java中使用HSSFWorkbook POI导出下载excel文件相关推荐
- vue导出excel加一个进度条_vue项目中如何把数据导出成excel文件
Loading... 关于vue中如何把数据导出成excel文件 ### 1. 安装依赖 ``` yarn add file-saver yarn add xlsx yarn add script-l ...
- POI导出的Excel文件无法打开
问题描述:使用poi导出的excel文件无法打开 解决方法:我这里的问题是文件格式 我出错的格式是.xlsx,将文件名后缀改成.xls就可以打开了
- java poi导出下载excel报表或下载到指定路径
1. 数据库查出数据导出excel浏览器并下载 /*** 导出下载excel* @param list 导出数据* @throws Exception*/public static void expo ...
- 使用java在后台将数据导出为excel文件
本文主要讲的是怎么使用java将数据导出为Excel文件,xls格式的. 例如:我从前台查询到的数据,要把数据进行导出为excl格式的文件.需要将前台的查询条件(数据)传递到后台,后台拿到数据,写sq ...
- Easyexcel配置自定义列与自定义顺序导出下载Excel文件
依赖版本 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</art ...
- Python爬取网页中表格数据并导出为Excel文件
本文使用自己创建的网页进行模拟和演示,在爬取真实网页时,分析网页源代码然后修改代码中的正则表达式即可. 假设某网页源代码为: 在Hbuilder中单击菜单"运行",选择使用Goog ...
- 【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
// 下载blob文件流(暂不支持手机H5唤起下载文件!!!) downloadFile(res: any, fileName: any = '未命名', format: any = '.xlsx') ...
- java poi打印excel_java中对poi导出的Excel进行打印设置
java中对poi导出的Excel进行打印设置 java中对poi导出的Excel进行打印设置 无模板时 PrintSetup ps = sheet.getPrintSetup(); // 印刷方向. ...
- JAVA实现数据库数据导入/导出到Excel(POI)
原文地址为: JAVA实现数据库数据导入/导出到Excel(POI) 准备工作: 1.导入POI包:POI下载地址http://mirrors.tuna.tsinghua.edu.cn/apache/ ...
最新文章
- arraylist 后往前遍历_Java集合框架之ArrayList
- 我把面试官问的没话说了,这样好吗?
- 在Windows Azure公有云环境部署企业应用
- 使用ASP.NET Core MVC的Vue.Js
- table表头多选框禁用 vue_Vue踩坑小记(四)
- ASP.NET Core WebAPI控制器返回类型的最佳选项
- 协同过滤算法_《推荐系统实践》3.基于物品的协同过滤算法
- 推荐使用maven生成mybatis代码
- 5G 智能融合城域网特点与组网方案
- 杭州电子科技大学计算机考研资料汇总
- b站会员转正自动答题
- java rrd_java利用rrd4j做服务监控的图片
- c++ append用法
- (一)TileMap使用
- KMP算法的时间复杂度
- 蓝牙配对,解决蓝牙多次连接不上的问题
- mysql数据库中的KEY和PRIMARY KEY的疑惑?
- 不要因为不知,所以设计
- 项目启动成功,但是Eureka页面不显示
- CTR --- NFM论文阅读笔记,及tf2复现
热门文章
- MAC电脑连接windows台式机
- 人才缺口达30万!前端人拿下这个证书有多吃香?!
- 华为鸿蒙福利群抢红包,成就红包第一抢!华为Mate S拒绝手慢无
- [2017纪中10-26]摘Galo 树型背包
- 【博弈论】POJ[2348]Euclid's Game
- 荣耀v40和荣耀v40pro的区别
- vux scroller在iOS13上,一停止滑动就跳到顶部
- 关于家用路由器下挂多个设备包括下挂路由器的操作
- Sharding Sphere ~ Sharding-jdbc分库分表、读写分离
- Mac 下生成keystore以及获得数字签名