TY呀TY 发表于 2022-12-2 16:46:51

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:50

您好,已复现此问题,本帖将置为保留处理。

TY呀TY 发表于 2022-12-5 20:03:51

Ellia.Duan 发表于 2022-12-2 18:26
您好,已复现此问题,本帖将置为保留处理。

这个大概什么时候解决,或者还有什么方法设置这个列宽

TY呀TY 发表于 2022-12-7 09:36:46

本帖最后由 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:52:10

本帖最后由 Ellia.Duan 于 2022-12-7 09:57 编辑

TY呀TY 发表于 2022-12-7 09:36
你们都复现了啊,用的是v5.2.3
楼上测试用的版本较早,所以未发现此问题。这边测试在V5.2.5版本上复现了此问题。研发正在调研此问题,这边尽快为您调研一个workArround方案。

Ellia.Duan 发表于 2022-12-9 11:42:32


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]
查看完整版本: GCexcel tojson后列宽消失[DOCXLS-7202]