葡萄种子 发表于 2023-11-24 12:42:45

【绑定日期字段后单元格格式没有生效】

本帖最后由 Richard.Huang 于 2023-11-24 16:04 编辑

产品:GcExcel
版本:6.1.4
问题编号:DOCXLS-9329

我在模板里面是设置了单元格格式的,但是绑定日期进去后并没有生效。



代码如下:
public class DemoJsonDatasource3 {
    public static void main(String[] args) throws IOException {
      String index = "32";
      Workbook workbook = new Workbook();
      String rootPath = "";
      String templateFile = rootPath + index + ".template.xlsx";
      workbook.open(templateFile);
      String dataFile0 = rootPath + index + ".ds0.json.txt";
      JsonDataSource datasource0 = new JsonDataSource(new String(Files.readAllBytes(Paths.get(dataFile0)), StandardCharsets.UTF_8));
      workbook.addDataSource("ds0", datasource0);
      boolean page = false;
      if (page) {
            workbook.getNames().add("TemplateOptions.PaginationMode", "true");
            for (IWorksheet worksheet : workbook.getWorksheets()) {
                worksheet.getPageSetup().setPaperSize(PaperSize.A2);
                worksheet.getPageSetup().setOrientation(PageOrientation.Landscape);


            }
      }
      workbook.processTemplate();
      workbook.save(rootPath + index + ".result.xlsx");
    }
}


Richard.Huang 发表于 2023-11-24 14:47:39

您好,我将您的demo和代码放在本地进行了测试,但是结果并没有复现您所说的日期格式失效问题:
您能否详细描述一下您的问题,并告知一下复现您的问题的详细步骤

葡萄种子 发表于 2023-11-24 15:21:12

Richard.Huang 发表于 2023-11-24 14:47
您好,我将您的demo和代码放在本地进行了测试,但是结果并没有复现您所说的日期格式失效问题:
您能否详细 ...

格式设置到分,但是结果呢显示到毫秒了。

葡萄种子 发表于 2023-11-24 15:21:48

葡萄种子 发表于 2023-11-24 15:21
格式设置到分,但是结果呢显示到毫秒了。

年月日的分割线是/但是没生效

葡萄种子 发表于 2023-11-24 15:24:24

Richard.Huang 发表于 2023-11-24 14:47
您好,我将您的demo和代码放在本地进行了测试,但是结果并没有复现您所说的日期格式失效问题:
您能否详细 ...

我就是用这个demo复现的,你本地的结果是怎样的,是你贴的这个图片吗

Richard.Huang 发表于 2023-11-24 16:04:25

葡萄种子 发表于 2023-11-24 15:24
我就是用这个demo复现的,你本地的结果是怎样的,是你贴的这个图片吗

抱歉之前没能理解您的意思,经过测试,我在GcExcelV6.2.5中复现了您描述的问题,对此我们会进行深入调研,后续有相关调研结果我会第一时间在本贴中进行回复。问题编号:DOCXLS-9329

Richard.Huang 发表于 2023-11-24 17:45:18

最新调研结果,该问题的主要原因是您数据源中日期是一个字符串,我们是无法对一个字符串类型的值进行数值类型的格式设置的,因此为了解决该问题,建议您将日期改为OAdata类型:
{"u_c3f773f19fcb0912_2":"2023-11-23 13:42:24.739"} 变成{"u_c3f773f19fcb0912_2": 45253.5711196644}

或者使用自定义对象的数据绑定方式,为属性设置一个OADate类型的值。通过Java的转换将字符串格式的日期改为OADate类型:https://demo.grapecity.com.cn/documents-api-excel-java/demos/customobject

葡萄种子 发表于 2023-11-24 18:04:59

Richard.Huang 发表于 2023-11-24 17:45
最新调研结果,该问题的主要原因是您数据源中日期是一个字符串,我们是无法对一个字符串类型的值进行数值类 ...

可以绑定record是的map吗?我们定义java对象比较麻烦,因为对象的字段不是固定的。

Richard.Huang 发表于 2023-11-26 14:10:26

葡萄种子 发表于 2023-11-24 18:04
可以绑定record是的map吗?我们定义java对象比较麻烦,因为对象的字段不是固定的。
抱歉,目前并不支持Map类型的数据源。您只能将json文件、ResultSet、变量、自定义对象作为数据源。
学习指南参考:https://demo.grapecity.com.cn/do ... va/demos/datasource

葡萄种子 发表于 2023-11-27 09:29:47

建议增加map的支持,那样灵活性会更好一些哈。我们也想其他办法解决吧。
页: [1] 2
查看完整版本: 【绑定日期字段后单元格格式没有生效】