找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2023-8-3 09:38  /   查看:1994  /  回复:9
本帖最后由 Joestar.Xu 于 2023-8-4 11:41 编辑

公式 =TEXT(3,"_ * #,##0.00_ ;_ * \-#,##0.00_")


在spreadjs 计算结果是3.00

但在GcExcel计算出的是 Value?



9 个回复

倒序浏览
nutstore
金牌服务用户   /  发表于:2023-8-3 09:39:31
沙发
如图

image.png350977172.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-3 10:00:35
板凳
您好,问题已重现,这边调研一下,后续有进展我会在本贴中回复您。

本帖先做保留处理了。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-4 12:01:40
地板
您好,请使用这个公式:=TEXT(3,"_ * #,##0.00_ ;_ * \-#,##0.00")

image.png748602599.png

之前的公式在Excel中也会报错,但是在SpreadJS中没有报错,这个问题我们接下来还需要调研一下。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-4 17:13:47
5#
另外,您为什么要为单元格设置:“_ * #,##0.00_ ;_ * \-#,##0.00_”这样的格式呢?是为了解决什么样的问题呢?
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-8-4 20:20:56
6#
Joestar.Xu 发表于 2023-8-4 17:13
另外,您为什么要为单元格设置:“_ * #,##0.00_ ;_ * \-#,##0.00_”这样的格式呢?是为了解决什么样的问题 ...

客户那边的公式, 我们同时使用了spreadjs和gcexcel, 但在spreadjs上正常, gcexcel不正常,就造成了使用问题。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-7 10:47:50
7#
nutstore 发表于 2023-8-4 20:20
客户那边的公式, 我们同时使用了spreadjs和gcexcel, 但在spreadjs上正常, gcexcel不正常,就造成了使 ...

明白了,我们这边再调研一下,后续有进展我会在本帖回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-11 17:45:58
8#
您好,请参考以下临时解决方案:

var oldInit = GC.Spread.Formatter.GeneralFormatter.prototype.init;
GC.Spread.Formatter.GeneralFormatter.prototype.init = function () {
    oldInit.apply(this, arguments);
    var formatter = this.formatString();
    var result = [], _count = 0, start = 0, len = formatter.length;
    for (var i = 0; i < len; i++) {
        if (formatter[i] === '_') {
            _count++;
        }
        else {
            if (formatter[i] === ';' && (_count === 0 || _count % 2 === 0)) {
                result.push(formatter.substring(start, i));
                start = i + 1;
            }
            _count = 0;
        }
    }
    if (start <= len) {
        result.push(formatter.substring(start, len));
    }
    result.forEach(function (item) {
        if (item[item.length - 1] === "_") {
            throw new Error("Format pattern is invalid");
        }
    })
}
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-8-15 10:44:16
9#
Joestar.Xu 发表于 2023-8-11 17:45
您好,请参考以下临时解决方案:

var oldInit = GC.Spread.Formatter.GeneralFormatter.prototype.init; ...

。。。。这个不是GcExcel的问题么, 这个修复是让spreadjs计算挂掉么?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-15 11:27:32
10#
实际上,我们的SpreadJS与GCExcel都是与Excel保持一致的,在这个问题上SpreadJS的表现与Excel并不一致,而GCExcel的表现是与Excel一致的,因此问题出在了SpreadJS上,以上解决方案是将SpreadJS在这个问题的显示上与Excel保持一致。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部