找回密码
 立即注册

QQ登录

只需一步,快速开始

lynn8588

金牌服务用户

40

主题

161

帖子

413

积分

金牌服务用户

积分
413
lynn8588
金牌服务用户   /  发表于:2023-4-11 19:32  /   查看:1004  /  回复:2
本帖最后由 Richard.Huang 于 2023-10-19 11:29 编辑

产品:SpreadJS
问题编号:SJS-17813

这里有个问题,我excel上配置了一个文本格子,然后一个数字格子引用文本格子,excel上显示是正确的,但是spreadjs上显示错误。麻烦看下这个问题。
可以在你们demo环境重现,把附件上传在这个地址 https://demo.grapecity.com.cn/sp ... mport-export/purejs
然后可以看到第2张不正确的图。
image.png766125793.png image.png818211974.png

党员文件2.xlsx

10.84 KB, 下载次数: 41

2 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-12 09:44:29
沙发
本帖最后由 Joestar.Xu 于 2023-9-14 09:43 编辑

收到,此问题需要和研发确认一下是否是产品设计差异导致的,帖子暂时保留处理,(SJS-17813)
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-14 09:42:38
板凳
您好,这是一个已知的限制。

SpreadJS 格式化程序可以将类似数字的字符串格式化为另一个字符串。但在Excel中,如果单元格值是字符串类型,无论是否是类似数字的字符串,格式化程序都不会生效。

您可以用以下代码解决此问题:

var formatFn = GC.Spread.Formatter.GeneralFormatter.prototype.format;
GC.Spread.Formatter.GeneralFormatter.prototype.format = function (val) {
    var formatter = this.formatString();
    if (typeof val === 'string' && (formatter.indexOf("0") || formatter.indexOf("#"))) {
        return val;
    }
    return formatFn.apply(this, arguments);
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部