easyexcel 可以做到一个页签用模板填充,一个页直接写入吗?

yshpjwxd  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(226)

建议先去看文档
快速开始常见问题
异常代码

  1. String templateFileName = "E:\\xnworkspace\\mgmt-data-analysis\\src\\main\\resources\\template\\mainReportTpl.xlsx";
  2. String fileName = "E:\\xnworkspace\\mgmt-data-analysis\\sdf.xlsx";
  3. MainReportData data = projectService.mainReportData(41);
  4. List<DetailReportData> mainReportData = projectService.detailReportData(41);
  5. DetailReportData.replaceStatusField(mainReportData);
  6. List<OnceAbsoluteMergeStrategy> mergeStrategyList = DetailReportData.getMergeStrategy(mainReportData);
  7. List<HorizontalCellStyleStrategy> styleStrategyList = DetailReportData.getStyleStrategy(mainReportData);
  8. ExcelWriterBuilder write = EasyExcel.write(fileName);
  9. write.withTemplate(templateFileName).sheet().doFill(data);
  10. ExcelWriterSheetBuilder sheet2 = write.head(DetailReportData.class).sheet(1, "任务详情");
  11. for (OnceAbsoluteMergeStrategy onceAbsoluteMergeStrategy : mergeStrategyList) {
  12. sheet2.registerWriteHandler(onceAbsoluteMergeStrategy);
  13. }
  14. for (HorizontalCellStyleStrategy horizontalCellStyleStrategy : styleStrategyList) {
  15. sheet2.registerWriteHandler(horizontalCellStyleStrategy);
  16. }
  17. sheet2.doWrite(mainReportData);

异常提示

建议描述
目前的情况是第一个只要加上了第二个页签的处理,第一个页签的数据就是空的

6vl6ewon

6vl6ewon1#

  1. import com.alibaba.excel.EasyExcel;
  2. import com.alibaba.excel.write.builder.ExcelWriterBuilder;
  3. import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
  4. import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy;
  5. import com.alibaba.excel.write.metadata.style.HorizontalCellStyleStrategy;
  6. import java.util.List;
  7. public class ExcelExport {
  8. public static void main(String[] args) {
  9. String templateFileName = "E:\\xnworkspace\\mgmt-data-analysis\\src\\main\\resources\\template\\mainReportTpl.xlsx";
  10. String fileName = "E:\\xnworkspace\\mgmt-data-analysis\\sdf.xlsx";
  11. // 获取数据
  12. MainReportData data = projectService.mainReportData(41);
  13. List<DetailReportData> mainReportData = projectService.detailReportData(41);
  14. // 对数据进行预处理
  15. DetailReportData.replaceStatusField(mainReportData);
  16. List<OnceAbsoluteMergeStrategy> mergeStrategyList = DetailReportData.getMergeStrategy(mainReportData);
  17. List<HorizontalCellStyleStrategy> styleStrategyList = DetailReportData.getStyleStrategy(mainReportData);
  18. // 创建Excel写入器
  19. ExcelWriterBuilder write = EasyExcel.write(fileName);
  20. // 使用模板文件填充数据
  21. write.withTemplate(templateFileName).sheet().doFill(data);
  22. // 创建第二个sheet并写入数据
  23. ExcelWriterSheetBuilder sheet2 = write.head(DetailReportData.class).sheet(1, "任务详情");
  24. for (OnceAbsoluteMergeStrategy onceAbsoluteMergeStrategy : mergeStrategyList) {
  25. sheet2.registerWriteHandler(onceAbsoluteMergeStrategy);
  26. }
  27. for (HorizontalCellStyleStrategy horizontalCellStyleStrategy : styleStrategyList) {
  28. sheet2.registerWriteHandler(horizontalCellStyleStrategy);
  29. }
  30. sheet2.doWrite(mainReportData);
  31. }
  32. }
展开查看全部

相关问题