填充Excel

java 复制代码
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

    public void infoExport(TestSaveReqVO exportReqVO, HttpServletResponse response) {
        TestSaveReqVO result = BeanUtils.toBean(exportReqVO, TestSaveReqVO.class);
        getInfo(result);
        InputStream inputStream = null;
        try {
            inputStream = XXX.class.getClassLoader().getResourceAsStream("template/xxx_template.xlsx");

            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("xxxxx表.xlsx", StandardCharsets.UTF_8));

            ExcelWriter writer = EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).build();
            WriteSheet sheet = EasyExcel.writerSheet().build();
            // 开启填充换行
            FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();

            writer.fill(result, fillConfig, sheet);
            writer.finish();

        } catch (Exception e) {
            log.error("fail to export excel:", e);
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (Exception e) {
                    log.error("fail close stream:", e);
                }
            }
        }
    }
	
	public void download(Long id, HttpServletResponse response) {
        TestRespVO resultVO = getInfo(id);
        Map<String, Object> downloadInfo = getDownLoadInfo(resultVO);
        InputStream inputStream = null;
        try {
            inputStream = xxxxx.class.getClassLoader().getResourceAsStream("template/xxxxm.xlsx");

            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("xxxx单.xlsx", StandardCharsets.UTF_8));

            ExcelWriter writer = EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).build();
            WriteSheet sheet = EasyExcel.writerSheet().build();
            // 开启填充换行
            FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();

            writer.fill(downloadInfo, fillConfig, sheet);
            writer.finish();
        } catch (Exception e) {
            log.error("fail to export excel:", e);
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (Exception e) {
                    log.error("fail close stream:", e);
                }
            }
        }
    }
相关推荐
AI英德西牛仔4 小时前
文心 Excel 与“AI 导出鸭”:PC 端批量导出方案的技术解构
人工智能·excel·deepseek·ai导出鸭
Am-Chestnuts6 小时前
AI 对话里的表格怎么导出成 Excel 还能筛选排序?用DS随心转把数据整理成可分析表格
大数据·人工智能·excel
Metaphor6927 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
weixin_4692738111 小时前
银行流水 PDF 转 Excel 或者 CSV 完整指南
人工智能·pdf·excel
百事牛科技11 小时前
Excel部分单元格禁止修改:锁住该锁的,放开该放的
windows·excel
asdzx6713 小时前
使用 Python 为 Excel 添加各类数据验证规则
开发语言·python·excel
足球中国15 小时前
.net DataExcel控件 2.11.1.53版发布
c#·.net·excel
程序员贺加贝15 小时前
列表导出不够用-SaaS-ERP-单据详情导出的-Provider-模板与文档型-Excel-设计
java·后端·设计模式·架构·excel
城数派16 小时前
1901-2025年中国省市县三级逐月平均气温数据(Shp/Excel格式)
excel
一晌小贪欢16 小时前
Python办公16:PDF 强力缝合——将几十个 PDF 合并为单个文档并添加页码
开发语言·python·excel·数据可视化·python办公