根据excel模板(带计算公式)实现导出功能 您所在的位置:网站首页 n8模板导入后占内存吗 根据excel模板(带计算公式)实现导出功能

根据excel模板(带计算公式)实现导出功能

2024-01-28 18:03| 来源: 网络整理| 查看: 265

一、需求

    需求是需要实现一个导出excel文件的功能,但是提供的模板较为复杂,并且大量单元格附带公式。

ps:这只是需要导出的一小部分,带颜色的单元格都是含有公式的,而且需要导出的是一个xlsx中有3个类似的sheet。

二、思路

    既然提供模板文件已经很复杂化了,所以不打算用代码进行生成了(写起来会很麻烦),第三方也没有找到能满足我需求的,所以想直接读取现有的模板,然后将需要的值一个个填入进去,最后刷新sheet表的公式(这个很重要,不然只会显示填入了值,其他带公式的单元格不会自动计算数值)。

三、代码

直接上代码吧,其实也就是用了poi的基本操作

public void exportCalculation(Long id, HttpServletRequest request, HttpServletResponse response) { InputStream is = null; try { //根据id查询详细信息 LandTaxCalculationEntity landTaxCalculation = this.baseMapper.selectOneLandTaxCalculation(id); //获取模板 is = this.getClass().getClassLoader().getResourceAsStream("doc/土增税测算表导出模板.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(is); //设置第一张sheet表 //setSheetOne(landTaxCalculation, workbook); //设置第二张sheet表(first表) setFirstAndExpectSheet(landTaxCalculation, workbook,1); //设置第三张sheet表(Expect表) setFirstAndExpectSheet(landTaxCalculation, workbook,2); //设置文件名称 String table = "土增税测算表"; //设置返回header setResponseHeader2007(table, request, response); OutputStream out = response.getOutputStream(); workbook.write(out); out.close(); workbook.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 设置导出表 * @param landTaxCalculation 源数据 * @param workbook 模板文件 * @param sheetNum sheet编号 1:首次表 2:预期表 */ /** * 源数据和sheet编号是属于自己的业务字段,可以不用参考,主要还是思路,这里只贴出部分代码 */ private void setFirstAndExpectSheet(LandTaxCalculationEntity landTaxCalculation, XSSFWorkbook workbook,int sheetNum) { XSSFSheet sheetAt = workbook.getSheetAt(sheetNum); List incomeAreaSummary = null; if (sheetNum == 1){ incomeAreaSummary = landTaxCalculation.getIncomeAreaSummaryFirst(); } else { incomeAreaSummary = landTaxCalculation.getIncomeAreaSummaryExpect(); } //设置与收入相关的面积汇总 setIncomeAreaSummary(sheetAt, incomeAreaSummary); //强制刷新公式 sheetAt.setForceFormulaRecalculation(true); } /** * 设置与收入相关的面积汇总 */ private void setIncomeAreaSummary(XSSFSheet sheetAt, List incomeAreaSummary) { for (int i = 2; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有