前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >按照excel指定的样式导出数据

按照excel指定的样式导出数据

作者头像
johnhuster的分享
发布2022-03-28 17:54:53
发布2022-03-28 17:54:53
76800
代码可运行
举报
文章被收录于专栏:johnhusterjohnhuster
运行总次数:0
代码可运行

数据导出在涉及到报表的系统是一个很常见的功能,而excel又是常见的导出数据的方式,如果导出报表时需要按照一定的样式导出,那么就需要确保写入数据的excel按照某种样式返回。常见的方法是在创建excel的时候设置单元格样式来达到我们想要的样式效果,这种方法有以下缺点:

1.替换不方便,如果需要更改样式则需要修改代码:

代码语言:javascript
代码运行次数:0
复制
	HSSFWorkbook wb = new HSSFWorkbook();
	Sheet sheet = wb.createSheet("sheet0"); 	
	HSSFCellStyle style = wb.createCellStyle();
	style.setAlignment(CellStyle.ALIGN_CENTER);
	HSSFCellStyle cellStyle = wb.createCellStyle();
	HSSFDataFormat format= wb.createDataFormat();
	cellStyle.setAlignment(CellStyle.ALIGN_LEFT);
	cellStyle.setDataFormat(format.getFormat("yyyy-m-d"));	

2.增加了代码量

这里给出我的解决方案:

代码语言:javascript
代码运行次数:0
复制
	Resource resource = new ClassPathResource("model/xx.xlsx"); 
	Workbook wb = WorkbookFactory.create(resource.getInputStream());
	Sheet sheet = wb.getSheetAt(0);
	Row row = sheet.createRow(0);
	row.createCell(3).setCellValue("xx编码");
	row.createCell(4).setCellValue("xx类型");
	row.createCell(5).setCellValue("项目");
	row.createCell(6).setCellValue("计量单位");			
	row.createCell(7).setCellValue("xx(元)");
	os = response.getOutputStream();
	wb.write(os);	

思想:

提前设置好excel模板文件,并放在指定位置, 我这里放在了src/main/resources目录下,然后读取该文件并获取相应的sheet即可,这里需要注意的地方:

1.使用的getSheetAt方法获取Sheet,而不是创建Sheet

2.创建excel Cell的开始行可以根据需要设置,如果有表头则可以在表头下面某一行开始存入数据,cell行号是以0开始的!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/06/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思想:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档