找回密码
 立即注册

QQ登录

只需一步,快速开始

我是新用户
初级会员   /  发表于:2024-11-5 17:09  /   查看:107  /  回复:7
1金币
本帖最后由 我是新用户 于 2024-11-11 19:16 编辑

设置了千分比的单元格(格式为:#,##0.00‰):


QQ_1730797593554.png462611998.png
但是导出后的excel的单元格值为0.12、0.13。
QQ_1730797735544.png750143432.png
请问这种情况该怎么处理

QQ_1730796721375.png581135253.png

千分比录屏.zip

1.76 MB, 下载次数: 1

7 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:7 天前
沙发
您好!试下将自定义千分比格式调整为#,##0.000,"‰"或0.000,"‰",小数点后的小数位数由您根据业务需求自定义。效果如下动图所示:
千分位.gif
回复 使用道具 举报
我是新用户
初级会员   /  发表于:6 天前
板凳
Wilson.Zhang 发表于 2024-11-6 09:14
您好!试下将自定义千分比格式调整为#,##0.000,"‰"或0.000,"‰",小数点后的小数位数由您根据业务需求自定 ...

如果这种方式的格式的话,有三个地方的改动。
1、手动输入的值(比如1000),实际单元格的值为(1000‰),
2、我从数据库取出来的值(假设为1)通过setValue方式设置值的话,我需要先乘1000,再调用setValue才可以。
3、点击保存时(假设界面显示为1000‰),需要将获取的值除以1000,再保存到数据库了。
回复 使用道具 举报
我是新用户
初级会员   /  发表于:6 天前
地板
这样操作感觉有些繁琐
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:6 天前
5#
我是新用户 发表于 2024-11-7 11:04
这样操作感觉有些繁琐

您最初的设置方式在SpreadJS中有效,但是Excel不支持对单元格设置千分比格式,导致对格式解析无效,仅在原始数据后接上千分比符号。之后给您提供的数据格式是为了在SpreadJS和Excel之间保持一致的数据,但是操作较为繁琐,转换时乘以1000000。如果您业务场景中的千分比数据仅用于展示而不参与计算,那么可以自行置换原始数据对应的千分比格式,在其后拼接千分比符号,以文本形式设置在单元格中。
回复 使用道具 举报
我是新用户
初级会员   /  发表于:前天 19:13
6#
本帖最后由 我是新用户 于 2024-11-11 19:18 编辑

按照这种方案不行。已做了视频录屏。不编辑显示2‰时,实际值却为2000呢,而2‰的值应当为0.002
回复 使用道具 举报
我是新用户
初级会员   /  发表于:前天 19:33
7#
能否导出时,将所有千分比类型的单元格统一乘以1000呢。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:昨天 15:13
8#
我是新用户 发表于 2024-11-11 19:33
能否导出时,将所有千分比类型的单元格统一乘以1000呢。

虽然这样可以使得在Excel单元格中显示的千分比数据等于SpreadJS中未乘以1000的原数据的千分比格式,但是在Excel的公式编辑栏中仍然显示乘以1000后的数据,也就是说此时的数据一致性被破坏了。

如果千分比数据在您的业务场景中不需要参与运算,那建议您将千分比数据设置为文本,即当作字符串。在SpreadJS中,先将数据自行转换为对应的千分比格式,即加上千分比号的格式,再通过Worksheet:setValue()将其填充至单元格。导出为Excel后,千分比文本数据依然存在,与SpreadJS中一致。如下图所示:
1731395578335.png67886961.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部