找回密码
 立即注册

QQ登录

只需一步,快速开始

NEO_dgz_2022

注册会员

17

主题

61

帖子

160

积分

注册会员

积分
160
NEO_dgz_2022
注册会员   /  发表于:2022-10-21 15:52  /   查看:4040  /  回复:18
1金币
本帖最后由 Ellia.Duan 于 2022-10-24 15:43 编辑

在spreadjs 里将一串数字通过单元格设置,设置成字符类型,在通过gcExcel 导出,发现导出的格式与spreadjs里格式不一致。

具体步骤为
1、在spreadjs 将单元格数字设置成345678123456
    image.png557720641.png
2、修改单元格格式
image.png866521606.png
3、通过gcExcel导出
image.png909483642.png
4、导出结果
image.png372518615.png

最佳答案

查看完整内容

您可以在GcExcel中将数值类型转换为字符类型。转换之前在SpreadJS中 通过以下代码转换后: 导出pdf或者xlsx后,已经变为

18 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-21 15:52:12
来自 16#
NEO_dgz_2022 发表于 2022-10-24 16:08
那spread,js 中将数字设置成文本,导出时没法直接获取到文本么,有对应的属性可以设置么

您可以在GcExcel中将数值类型转换为字符类型。转换之前在SpreadJS中
image.png460043944.png
通过以下代码转换后:

  1.         Workbook workbook = new Workbook();
  2.         workbook.open("json/science.ssjson");
  3.         IWorksheet ws1 = workbook.getWorksheets().get(0);

  4.         ws1.getRange("A1").setNumberFormat("@");
  5. //        DecimalFormat d1=new DecimalFormat("0");
  6.         DecimalFormat d1=new DecimalFormat("0.0");
  7.         String str=d1.format(ws1.getRange("A1").getValue());
  8.         ws1.getRange("A1").setValue(str);
  9.         workbook.save("json/science.pdf");
  10.         workbook.save("json/science.xlsx");
复制代码
导出pdf或者xlsx后,已经变为
image.png482491759.png

回复 使用道具 举报
有点东西悬赏达人认证
初级会员   /  发表于:2022-10-21 18:23:31
2#
变成科学计数法是正常现象,可以到Excel上重复在spredjs上的步骤你就可以看到结果
image.png120788878.png
回复 使用道具 举报
NEO_dgz_2022
注册会员   /  发表于:2022-10-21 18:47:47
3#
Excel 我测试了好像导出是正常的
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-22 15:37:15
4#
我看到您GcExcel上导出的方式是导出一个PDF文件吗?
回复 使用道具 举报
NEO_dgz_2022
注册会员   /  发表于:2022-10-22 16:41:17
5#
Clark.Pan 发表于 2022-10-22 15:37
我看到您GcExcel上导出的方式是导出一个PDF文件吗?

是的
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-24 12:59:39
6#
本帖最后由 Ellia.Duan 于 2022-10-24 14:24 编辑

您好,请问测试流程是这样子的吗?在Spreadjs中输入345678123456 ,然后将其单元格类型变为文本,然后导出excel。在GcExcel中将导出的excel转存为pdf。
这边通过上述测试流程复现了问题,已将此问题记录下来进一步调研,待有进展会在贴中通知您。本贴先做保留处理【DOCXLS-6835
回复 使用道具 举报
NEO_dgz_2022
注册会员   /  发表于:2022-10-24 13:13:15
7#
Ellia.Duan 发表于 2022-10-24 12:59
您好,请问测试流程是这样子的吗?在Spreadjs中输入345678123456 ,然后将其单元格类型变为文本,然后导出e ...

对的,是这个复现流程,等有解决方案,在这里回复一下我,谢谢。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-24 14:24:04
8#
NEO_dgz_2022 发表于 2022-10-24 13:13
对的,是这个复现流程,等有解决方案,在这里回复一下我,谢谢。

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-24 15:42:29
9#
您好,经过调研:在SpreadJS中输入数字,然后修改单元格格式为‘文本’。通过getValue()接口获取到的还是数值类型

image.png143297118.png
如果在空白的单元格上,设置单元格格式为”文本“,然后再输入数字,此时通过getValue()接口获取到的是文本类型。
image.png120365904.png
此时将其通过GcExcel导出为pdf,发现A1为科学计数法,A2为文本
image.png813891601.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部