GCexcel tojson后列宽消失[DOCXLS-7202]
本帖最后由 Ellia.Duan 于 2022-12-7 09:56 编辑public static void main(String[] args) throws Exception{
String name="离谱了";
Workbook third=new Workbook();
third.getWorksheets().add();
third.getWorksheets().get("Sheet2").getRange("C:C").setColumnWidthInPixel(188);
//转换为json
String json=third.toJson();
Workbook after=new Workbook();
//放入新的workbook
after.fromJson(json);
OutputStream out=new FileOutputStream("E:\\output\\"+name+".xlsx");
//此时列宽恢复了65
after.save(out);
}
当设置了列宽转为json字符串后,再转换为workbook,此时列宽设置消失
您好,已复现此问题,本帖将置为保留处理。 Ellia.Duan 发表于 2022-12-2 18:26
您好,已复现此问题,本帖将置为保留处理。
这个大概什么时候解决,或者还有什么方法设置这个列宽
本帖最后由 TY呀TY 于 2022-12-7 09:38 编辑
Richard.Ma 发表于 2022-12-6 13:42
你好,测试了一下,按照你的代码,设置的列宽还是在的,使用的是V5.2.1,不知道你那边是不是这个版本
你们都复现了啊,用的是v5.2.3
本帖最后由 Ellia.Duan 于 2022-12-7 09:57 编辑
TY呀TY 发表于 2022-12-7 09:36
你们都复现了啊,用的是v5.2.3
楼上测试用的版本较早,所以未发现此问题。这边测试在V5.2.5版本上复现了此问题。研发正在调研此问题,这边尽快为您调研一个workArround方案。
workbook.toJson() 有一个默认设置,它会忽略所有超出使用范围的样式和列宽,因此在 toJson 时列宽会丢失。 使用以下代码来保持列宽
Workbook wb1 = new Workbook();
Workbook wb_2 = new Workbook();
wb1.getWorksheets().add();
wb1.getWorksheets().get("Sheet2").getRange("C:C").setColumnWidthInPixel(188);
SerializationOptions options = new SerializationOptions();
options.setIgnoreColumnRowInfoOutOfUsedRange(false);
wb_2.fromJson(wb1.toJson(options));
页:
[1]