Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于使用填充 Excel 复杂的填充导致格式改变的问题 #780

Closed
Chaos-ting opened this issue Oct 31, 2019 · 5 comments
Closed
Labels
pending verification This problem needs to be confirmed

Comments

@Chaos-ting
Copy link

使用Excel 复杂的填充 的时候 如果list不是最后一行 但是list下面有格式 导出之后格式没有了,而且list的格式也不对。
微信截图_20191031120620
微信截图_20191031120603

@Chaos-ting
Copy link
Author

  // 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
    // {} 代表普通变量 {.} 代表是list的变量
    List<Map<String, Object>> a = new ArrayList<>();
    for (int i = 0; i < 4; i++) {
        Map b = new HashMap();
        b.put("a", i + "序号");
        b.put("b", i + "产品");
        b.put("c", i + "规格");
        b.put("d", i + "数量");
        b.put("p0", i + "价格1");
        b.put("p1", i + "价格2");
        b.put("p2", i + "价格3");
        b.put("p3", i + "价格4");
        a.add(b);
    }
    //第一次生成的文件
    String templateFileName ="C:/Users/Administrator/Desktop/1572406131820.xlsx";
    //最终生成的文件
    String fileName = "C:/Users/Administrator/Desktop/" + System.currentTimeMillis() + ".xlsx";
    ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build();
    WriteSheet writeSheet = EasyExcel.writerSheet().build();
    // 这里注意 入参用了forceNewRow 代表在写入list的时候不管list下面有没有空行 都会创建一行,然后下面的数据往后移动。默认 是false,会直接使用下一行,如果没有则创建。
    // forceNewRow 如果设置了true,有个缺点 就是他会把所有的数据都放到内存了,所以慎用
    // 简单的说 如果你的模板有list,且list不是最后一行,下面还有数据需要填充 就必须设置 forceNewRow=true 但是这个就会把所有数据放到内存 会很耗内存
    // 如果数据量大 list不是最后一行 参照下一个
    FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
    excelWriter.fill(a, fillConfig, writeSheet);
    excelWriter.finish();

贴上我的代码

@Chaos-ting
Copy link
Author

 <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.0-beta4</version>
    </dependency>

版本是最新的

@zhuangjiaju zhuangjiaju added the pending verification This problem needs to be confirmed label Nov 1, 2019
@zhuangjiaju
Copy link
Collaborator

已经在2.1.1 修复。非常感谢您的意见。

@gaorun588
Copy link

下面有图片好像还是解决不了

@gaorun588
Copy link

已经在2.1.1 修复。非常感谢您的意见。

下面有图片好像还是解决不了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pending verification This problem needs to be confirmed
Projects
None yet
Development

No branches or pull requests

3 participants