zhvczw 发表于 2022-12-30 15:01:39

GCExcel在导出html的时候如何设置按照单元格显示内容导出?

本帖最后由 Lynn.Dou 于 2023-1-11 17:20 编辑

如图



Clark.Pan 发表于 2022-12-30 17:53:32

您好,您可以升级到V5.2.5版本测试一下,我这边用V5.2.5版本模拟您的数值进行导出HTML,结果是符合期望的。
原始Excel设置:

导出HTML:

zhvczw 发表于 2023-1-3 11:15:58

Clark.Pan 发表于 2022-12-30 17:53
您好,您可以升级到V5.2.5版本测试一下,我这边用V5.2.5版本模拟您的数值进行导出HTML,结果是符合期望的。 ...

GcExcel版本是5.2.5,又试了试还不行。我上传了原始json,麻烦看看。位置:输出页sheet【P6】

zhvczw 发表于 2023-1-3 11:30:21

zhvczw 发表于 2023-1-3 11:15
GcExcel版本是5.2.5,又试了试还不行。我上传了原始json,麻烦看看。位置:输出页sheet【P6】
导出html的代码部分,导出第一个sheet页
public static String gcExcelToHtml(String wJson){
      Workbook workbook = new Workbook();
      HtmlSaveOptions options = new HtmlSaveOptions();
      options.setExportSheetName(workbook.getWorksheets().get(0).getName());
      options.setExportImageAsBase64(true);
      options.setExportCssSeparately(false);
      options.setExportSingleTab(false);
      options.setExportGridlines(false);
      String result = "";
      try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
            IWorksheet worksheet = workbook.getWorksheets().get(0);
            worksheet.fromJson(wJson);
            workbook.save(bos, options);
            result = new String(bos.toByteArray());
      } catch (Exception e) {
            e.printStackTrace();
      }
      return result;
    }

Lynn.Dou 发表于 2023-1-3 17:32:30

本帖最后由 Lynn.Dou 于 2023-1-11 17:20 编辑

zhvczw 发表于 2023-1-3 11:30
导出html的代码部分,导出第一个sheet页
问题已复现,已将此问题记录下来进一步调研原因,待有结果会在贴中回复您。
本贴先做保留处理。(DOCXLS-7349)

Lynn.Dou 发表于 2023-1-11 17:19:55

更新进展:
原因是单元格的值实质上为字符串,如下图:

在SpreadJS,对于字符串类型的数字,也是支持设置数字格式的,即您文件中所设置的那样。
您如果在SpreadJS中直接导出xlsx文件,用微软Excel打开会发现显示的仍是原字符串值,即保留四位小数的。

GcExcel遵循与Excel一致的策略,对于字符串类型值导出pdf/html时会按照原字符串值进行显示,这也是为什么您问题中二者不一致的原因。
解决方案:
在设计表单时,避免使用字符串值,而是将单元格value设置为数字,这样二者就一致了。

zhvczw 发表于 2023-1-12 17:08:07

本帖最后由 zhvczw 于 2023-1-12 17:20 编辑

Lynn.Dou 发表于 2023-1-11 17:19
更新进展:
原因是单元格的值实质上为字符串,如下图:


感谢官方的解答。
该单元格的服务端存储被设计成了字符串类型,有没有在不改变数据类型的情况下实现html导出也能按spreadjs显示的预期样式导出的方法?如果服务端改数据类型,工作量会很大。

后续版本能否增加相关参数让用户自行设置是按单元格的value导出还是按text导出?

Lynn.Dou 发表于 2023-1-12 17:42:09

zhvczw 发表于 2023-1-12 17:08
感谢官方的解答。
该单元格的服务端存储被设计成了字符串类型,有没有在不改变数据类型的情况下实现html ...

目前GcExcel的设计是与Excel一致的,这一点前面回复中也已截图说明,所以需要您修改数据类型为number类型来解决此问题。
”SpreadJS字符串类型值也可以设置数字格式“,这一点其实是SpreadJS较于Excel的升级功能,但是从本贴问题来看,对于设计表单的操作者来说留下了后面的隐患。
所以,这边会结合本贴问题背景,向研发团队反馈相应的需求,看能否增加一个接口,让用户去选择是否去使用此“升级功能”,以避免出现类似的问题。
现将此贴移动至产品需求板块了,如果后续有相关计划,会在贴中同步您。
页: [1]
查看完整版本: GCExcel在导出html的时候如何设置按照单元格显示内容导出?