请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

innerwang

高级会员

106

主题

427

帖子

1097

积分

高级会员

积分
1097
innerwang
高级会员   /  发表于:2025-1-3 17:14  /   查看:110  /  回复:5
1金币
本帖最后由 Joestar.Xu 于 2025-1-6 17:07 编辑

调研编号:SJS-27961

导入如下文件,勾选【导入后自动计算】, 结果不对
image.png172784422.png

Excel 是对的
image.png392821349.png

文件如下:
人民币转大写-拼接.xlsx.zip (6.18 KB, 下载次数: 9)

5 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-1-3 17:33:30
沙发
您好,试试下面这个公式看能否满足您的需求:

  1. =IF(TRIM(B1)="","",IF(B1=0,"","人民币"&IF(B1<0,"负",)&IF(INT(B1),TEXT(INT(ABS(B1)),"[DBNum2]")&"元",)&IF(INT(ABS(B1)*10)-INT(ABS(B1))*10,TEXT(INT(ABS(B1)*10)-INT(ABS(B1))*10,"[DBNum2]")&"角",IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)<0.1,,"零")))&IF(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),TEXT(ROUND(ABS(B1)*100-INT(ABS(B1)*10)*10,),"[DBNum2]")&"分","整")))
复制代码
回复 使用道具 举报
innerwang
高级会员   /  发表于:2025-1-6 14:21:42
板凳
Joestar.Xu 发表于 2025-1-3 17:33
您好,试试下面这个公式看能否满足您的需求:

你好,这个公式可以得到期望的结果,但是为什么我提供的公式不行呢? 是 SpreadJS 的bug 吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-1-6 17:05:31
地板
这边调研一下,看看是什么原因导致的,后续有进展我会在本帖中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:4 天前
5#
您好,经调研,这是一个Excel历史问题,是一个关于处理 Excel 日期和数字格式相关的错误。

简单来说,当您在Excel中输入数字6并将其格式设置为“D”时,Excel会将其显示为6。

因为“D”被识别为日期Formatter,在 Excel 的 XML 中存储为“d”。

也就是说,6 首先被解释为与 6 的日期对应的 OADate 值,然后被转换为日期中的日的值。

但是,由于 Excel 中的历史问题,1900 年 3 月 1 日之前的所有 OADate 值都不正确。

OADate 0 → January 0, 1900
OADate 1 → January 1, 1900
OADate 2 → January 2, 1900
OADate 6 → January 6, 1900 → d 显示为 6
OADate 60 → February 29, 1900 (1900 年不是闰年)

在 SpreadJS 中,所有 OADate 值都是根据标准 OADate 定义设置的:

OADate 0 → December 30, 1899
OADate 1 → December 31, 1899
OADate 2 → January 1, 1900
OADate 3 → January 2, 1900
OADate 6 → January 5, 1900 → d 显示为 5
回复 使用道具 举报
Brander.Zhai
超级版主   /  发表于:4 天前
6#
D角,D分换成0角,0分就可以解决了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部