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

一、需求

    需求是需要实现一个导出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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值