littleknife 发表于 2024-12-6 16:21:37

【v14】新版chrome自定义公式存在乱码

本帖最后由 littleknife 于 2024-12-17 17:14 编辑

调研编号:SJS-27776

粘贴这个字符串:=V("E.A","A.R1020","S.MRpt","FY.FY2021","P.M_M09","BP.ERAdj","C.EC","AT.EOther","CT.EndingBalance","MC.MCNone","MG.PRCGAAP","DS.Actual","C4.C4None","ISFLOAT.1")

会将A.R变成1020,找不到原因,官网demo也不能复现,旧版的chrome就没问题。请问有什么排查方式吗

更新了最新的chrome会出现这个问题


Joestar.Xu 发表于 2024-12-6 17:39:10

您好,您具体用的是哪个版本的SpreadJS?我在14.2.6中也没有复现出这个问题。

littleknife 发表于 2024-12-17 10:09:33

Joestar.Xu 发表于 2024-12-6 17:39
您好,您具体用的是哪个版本的SpreadJS?我在14.2.6中也没有复现出这个问题。

你好,现在定位到了原因,这个Demo可以复现


Joestar.Xu 发表于 2024-12-17 10:23:48

您好,这部分代码是为了实现什么需求:

littleknife 发表于 2024-12-17 10:32:02

Joestar.Xu 发表于 2024-12-17 10:23
您好,这部分代码是为了实现什么需求:

为了实现全局格式化的需求

Joestar.Xu 发表于 2024-12-17 10:59:29

了解了,这边调研一下,后续有进展我会在本贴中回复您。

Joestar.Xu 发表于 2024-12-23 17:45:53

本帖最后由 Lynn.Dou 于 2025-1-7 11:33 编辑

您好,经调研,我们发现您设置的CultureInfo相关代码有误,以下是正确的设置代码:

var culture = new GC.Spread.Common.CultureInfo();
culture.NumberFormat.numberDecimalSeparator = ",";
culture.NumberFormat.numberGroupSeparator = " ";
// culture.NumberFormat.listSeparator = '|';
GC.Spread.Common.CultureManager.addCultureInfo("myCulture", culture);
GC.Spread.Common.CultureManager.culture("myCulture");

在设置了正确的代码后,在控制台中会提示:



也就是说默认情况下listSeparator的值为","。

而您的自定义CultureInfo中将numberDecimalSeparator 的值也修改为了","。

导致二者发生了冲突。

如果将listSeparator设置为"|",将不再会报错,但是会出现下图中的情况:



我不太确定您为什么要使用CultureInfo来实现全局格式化,CultureInfo是有标准的,它与各个地区文化的阅读、打字方式等有关,用CultureInfo来实现全局格式化的需求应该不是一个最佳方案。


能否请您再详细描述一下全局格式化的需求,这边调研看看是否有其他的方案。

Lynn.Dou 发表于 前天 11:34

请问楼主问题解决了吗?如果仍有疑问,如楼上所述,请再详细描述一下全局格式化的需求,以便问题的进一步调研。
页: [1]
查看完整版本: 【v14】新版chrome自定义公式存在乱码