GCExcel在导出html的时候如何设置按照单元格显示内容导出?
本帖最后由 Lynn.Dou 于 2023-1-11 17:20 编辑如图
您好,您可以升级到V5.2.5版本测试一下,我这边用V5.2.5版本模拟您的数值进行导出HTML,结果是符合期望的。
原始Excel设置:
导出HTML:
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: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-11 17:20 编辑
zhvczw 发表于 2023-1-3 11:30
导出html的代码部分,导出第一个sheet页
问题已复现,已将此问题记录下来进一步调研原因,待有结果会在贴中回复您。
本贴先做保留处理。(DOCXLS-7349) 更新进展:
原因是单元格的值实质上为字符串,如下图:
在SpreadJS,对于字符串类型的数字,也是支持设置数字格式的,即您文件中所设置的那样。
您如果在SpreadJS中直接导出xlsx文件,用微软Excel打开会发现显示的仍是原字符串值,即保留四位小数的。
GcExcel遵循与Excel一致的策略,对于字符串类型值导出pdf/html时会按照原字符串值进行显示,这也是为什么您问题中二者不一致的原因。
解决方案:
在设计表单时,避免使用字符串值,而是将单元格value设置为数字,这样二者就一致了。 本帖最后由 zhvczw 于 2023-1-12 17:20 编辑
Lynn.Dou 发表于 2023-1-11 17:19
更新进展:
原因是单元格的值实质上为字符串,如下图:
感谢官方的解答。
该单元格的服务端存储被设计成了字符串类型,有没有在不改变数据类型的情况下实现html导出也能按spreadjs显示的预期样式导出的方法?如果服务端改数据类型,工作量会很大。
后续版本能否增加相关参数让用户自行设置是按单元格的value导出还是按text导出?
zhvczw 发表于 2023-1-12 17:08
感谢官方的解答。
该单元格的服务端存储被设计成了字符串类型,有没有在不改变数据类型的情况下实现html ...
目前GcExcel的设计是与Excel一致的,这一点前面回复中也已截图说明,所以需要您修改数据类型为number类型来解决此问题。
”SpreadJS字符串类型值也可以设置数字格式“,这一点其实是SpreadJS较于Excel的升级功能,但是从本贴问题来看,对于设计表单的操作者来说留下了后面的隐患。
所以,这边会结合本贴问题背景,向研发团队反馈相应的需求,看能否增加一个接口,让用户去选择是否去使用此“升级功能”,以避免出现类似的问题。
现将此贴移动至产品需求板块了,如果后续有相关计划,会在贴中同步您。
页:
[1]