您好!在SpreadJS设置CheckBoxList单元格类型,并勾选了选项后,SpreadJS存储的勾选数据为字符串。以您提供的文件为例,除了单元格类型元数据外,对于E2单元格,SpreadJS存储的数据为”12“;对于E3,SpreadJS存储的数据为”567,567“。Excel不支持单元格类型,虽然无法显示CheckBoxList,但是由于保存了勾选的数据,因此,可以显示上述字符串。这是SpreadJS的处理方式,再说GcExcel的处理方式。
仍然以上述单元格为例,GcExcel为E3保存的内容为”[567,567]“,这才使得Excel中无法显示勾选内容。如果事先知道文件中哪些单元格被设置了单元格类型,可以将其内容”[567,567]“转为”567,567“,再将转换后的字符串填回单元格即可在Excel文件中看到原本勾选项对应的内容,可以参考如下代码:
- IWorksheet w2 = wb.getWorksheets().get("业绩数据");
- Object E3 = w2.getRange("E3").getValue();
- StringBuilder sb = new StringBuilder();
- if (E3.getClass().isArray()) {
- for (int i = 0; i < Array.getLength(E3); i++) {
- sb.append(Array.get(E3, i));
- if (i < Array.getLength(E3) -1) {
- sb.append(",");
- }
- }
- }
- w2.getRange("E3").setValue(sb.toString());
复制代码
您可以参考上述内容测试下。
|