【spreadjs15.2.2】千分比的单元格导出数据不一致
本帖最后由 我是新用户 于 2024-11-11 19:16 编辑设置了千分比的单元格(格式为:#,##0.00‰):
但是导出后的excel的单元格值为0.12、0.13。
请问这种情况该怎么处理
您好!试下将自定义千分比格式调整为#,##0.000,"‰"或0.000,"‰",小数点后的小数位数由您根据业务需求自定义。效果如下动图所示:
Wilson.Zhang 发表于 2024-11-6 09:14
您好!试下将自定义千分比格式调整为#,##0.000,"‰"或0.000,"‰",小数点后的小数位数由您根据业务需求自定 ...
如果这种方式的格式的话,有三个地方的改动。
1、手动输入的值(比如1000),实际单元格的值为(1000‰),
2、我从数据库取出来的值(假设为1)通过setValue方式设置值的话,我需要先乘1000,再调用setValue才可以。
3、点击保存时(假设界面显示为1000‰),需要将获取的值除以1000,再保存到数据库了。
这样操作感觉有些繁琐 我是新用户 发表于 2024-11-7 11:04
这样操作感觉有些繁琐
您最初的设置方式在SpreadJS中有效,但是Excel不支持对单元格设置千分比格式,导致对格式解析无效,仅在原始数据后接上千分比符号。之后给您提供的数据格式是为了在SpreadJS和Excel之间保持一致的数据,但是操作较为繁琐,转换时乘以1000000。如果您业务场景中的千分比数据仅用于展示而不参与计算,那么可以自行置换原始数据对应的千分比格式,在其后拼接千分比符号,以文本形式设置在单元格中。 本帖最后由 我是新用户 于 2024-11-11 19:18 编辑
按照这种方案不行。已做了视频录屏。不编辑显示2‰时,实际值却为2000呢,而2‰的值应当为0.002 能否导出时,将所有千分比类型的单元格统一乘以1000呢。 我是新用户 发表于 2024-11-11 19:33
能否导出时,将所有千分比类型的单元格统一乘以1000呢。
虽然这样可以使得在Excel单元格中显示的千分比数据等于SpreadJS中未乘以1000的原数据的千分比格式,但是在Excel的公式编辑栏中仍然显示乘以1000后的数据,也就是说此时的数据一致性被破坏了。
如果千分比数据在您的业务场景中不需要参与运算,那建议您将千分比数据设置为文本,即当作字符串。在SpreadJS中,先将数据自行转换为对应的千分比格式,即加上千分比号的格式,再通过Worksheet:setValue()将其填充至单元格。导出为Excel后,千分比文本数据依然存在,与SpreadJS中一致。如下图所示:
本帖最后由 我是新用户 于 2024-11-18 17:20 编辑
这种方式不能作为有公式的情况下的方案,有公式情况下无法参与计算。我还是导出时把千分千分制单元格退化为普通单元格。 我是新用户 发表于 2024-11-18 17:18
这种方式不能作为有公式的情况下的方案,有公式情况下无法参与计算。我还是导出时把千分千分制单元格退化为 ...
:hjyzw:
按照您说的思路也可行,您测试过能够满足需求就好。
页:
[1]