java excel模板中列表_java中自定义excel模板并且填充内容

该博客介绍了如何在Java中使用模板填充Excel内容。通过读取本地或服务器上的Excel模板,利用POIFSFileSystem和HSSFWorkbook库修改指定单元格的数据,并设置强制公式重新计算。最后,设置响应头以使浏览器下载生成的文件。
摘要由CSDN通过智能技术生成

场景

读取某一份固定的excel模板,根据数据填充进入指定的位置

本地测试时,在本地resources下创建一个存放模板的位置

例:

实现

挺简单的就直接贴代码吧,不得不吐槽一下博客园的编辑器真的很难用..

@Overridepublic void exportDeposit(UserInfo userInfo, Long id, HttpServletRequest request, HttpServletResponse response) throwsException {/*业务内容*/

//excel模板路径(分别是本地测试路径和云上服务器路径)

String file = this.getClass().getClassLoader().getResource("excel/zhck.xls").getFile();//String file = "/usr/local/wms_trade/zhck.xls";

File fi = newFile(file);

POIFSFileSystem fs= new POIFSFileSystem(newFileInputStream(fi));//读取excel模板

HSSFWorkbook wb = newHSSFWorkbook(fs);//读取了模板内所有sheet内容

HSSFSheet sheet = wb.getSheetAt(0);

sheet.setForceFormulaRecalculation(true);//在相应的单元格进行赋值//第11行 第6列,这是部分业务内容,其实和本文关系不大,但是可以用来给需要的人参考,内容是如何填入的,不过我更加建议去参考原生api

sheet.getRow(3).getCell(3).setCellValue(deposit.getType());if (deposit.getGmtDeposit() != null) {

sheet.getRow(3).getCell(1).setCellValue(deposit.getGmtDeposit().toString());

}

sheet.getRow(3).getCell(5).setCellValue(deposit.getDepositNumber());

sheet.getRow(3).getCell(7).setCellValue(deposit.getCreateName());

sheet.getRow(4).getCell(1).setCellValue(deposit.getDestination());/*业务内容*/

//浏览器打开下载窗口

String fileName = deposit.getDepositNumber() + "出库单.xls";

response.reset();

response.setCharacterEncoding("UTF-8");//Content-disposition 浏览器以下载的形式打开

String header = request.getHeader("User-Agent").toUpperCase();if (header.contains("MSIE") || header.contains("TRIDENT") || header.contains("EDGE")) {

fileName= URLEncoder.encode(fileName, "utf-8");

fileName= fileName.replace("+", "%20");

}else{

fileName= new String(fileName.getBytes(), "ISO8859-1");

}

response.setHeader("Content-Disposition", "attachment; filename=" +fileName);

response.setContentType("application/vnd.ms-excel");//直接用数组缓冲输出流输出

wb.write(response.getOutputStream());

}

留言

注释里写的挺明白的我个人觉得,只要看完应该就可以操作了,

具体的如何填充内容可以直接去搜索HSSFWorkbook,HSSFSheet,HSSFCellStyle,HSSFFont,HSSFRow,HSSFCell等API,

看过一轮就知道怎么使用了,上面也有部分例子可以参考

这个接口写完以后,已经可以直接用url访问下载文件了,剩下的就得交给前端了(那块我就不是很懂了)

如果挂在云服务器上的话,需要将模板也传一份到自己制定的目录,然后将文件路径更改一下,才能使用

比如:

有更好的办法欢迎留言

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值