小时光 发表于 2023-7-10 13:43:42

SpreadJS加载excel如何避免因excel的编辑语言不同而影响列宽

本帖最后由 Joestar.Xu 于 2024-8-29 11:56 编辑

产品:SpreadJS
问题编号:
LastReview:2024-8-29
此错误的原因涉及底层渲染逻辑,修复困难且有风险,目前还在修复中。


假如我的excel是在英文的编辑语言下设置的列宽,那么spreadJS加载excel后M列这个列宽是正常显示的。假如excel是在日文的编辑语言下设置的刚好正好显示的列宽,spreadJS加载后M列就会变窄,导致原本显示的文字显示不全,图中的数字就会因为列宽太窄变成了###。

猜测是spreadJS加载excel是按英文环境加载的?
有没有办法解决这个问题呢,有什么设置可以指定spreadJS加载excel时候按照指定编辑语言加载吗?还是只能是作成这份excel的时候就必须保证在英文环境下显示正常才可以?

Joestar.Xu 发表于 2023-7-10 17:58:34

您好,麻烦您提供一下可以复现这个问题的Demo或json文件,我们这边调研一下看是否有解决方案。

小时光 发表于 2023-7-11 10:00:54

Joestar.Xu 发表于 2023-7-10 17:58
您好,麻烦您提供一下可以复现这个问题的Demo或json文件,我们这边调研一下看是否有解决方案。

多谢。组件其实就是最基本的一个,主要是excel,就是把M列的列宽在日语编辑语言下设为刚好显示的列宽,然后spreadJS去加载的时候M列就会变窄显示为XXXX,附件中的excel是按上述说明调整好的

Joestar.Xu 发表于 2023-7-11 15:01:25

小时光 发表于 2023-7-11 10:00
多谢。组件其实就是最基本的一个,主要是excel,就是把M列的列宽在日语编辑语言下设为刚好显示的列宽,然 ...

您好,我这边尝试安装了日语的语言包,excel为office365,打开您提供的Demo,没能复现出您上述的问题,在这边仍然显示为###,如下图所示:


小时光 发表于 2023-7-11 16:13:51

Joestar.Xu 发表于 2023-7-11 15:01
您好,我这边尝试安装了日语的语言包,excel为office365,打开您提供的Demo,没能复现出您上述的问题,在 ...

是这样,你试一下打开附件中的excel,然后在日语编辑语言下将M列宽尽量调小到再小就显示为###但还能正常显示的程度,然后用spreadJS打开这份excel,这时候M列应该会显示为###了。

大白菜 发表于 2023-7-11 17:26:23

本帖最后由 大白菜 于 2023-7-11 17:28 编辑

小时光 发表于 2023-7-11 16:13
是这样,你试一下打开附件中的excel,然后在日语编辑语言下将M列宽尽量调小到再小就显示为###但还能正常 ...
这好像跟语言没关系吧,就是跟你单元格的数据和列宽有关系。你数据的长度和列宽的关系,看看是否可以初始化的时候看下某列的数据,递归找到这一列数据的最小的length,然后给列宽设置最小宽度为最小的length对应的宽度值,不知官方是否有更好的法子不显示###

Joestar.Xu 发表于 2023-7-11 17:45:36

本帖最后由 Joestar.Xu 于 2023-7-11 17:46 编辑

您好,我按照您说的尝试复现了一下这个问题,如下图所示,仍然无法复现。





我在列宽为32时导入到SpreadJS中,如下图:



猜测可能与SpreadJS的版本有关,您那边使用的SpreadJS版本是多少呢?可以升级到最新版本看看还有没有这样的问题吗?

小时光 发表于 2023-7-11 17:52:26

Joestar.Xu 发表于 2023-7-11 17:45
您好,我按照您说的尝试复现了一下这个问题,如下图所示,仍然无法复现。




我的版本是15.2.2, 你的是什么版本呢

Joestar.Xu 发表于 2023-7-11 18:49:47

小时光 发表于 2023-7-11 17:52
我的版本是15.2.2, 你的是什么版本呢

您好,我这边用的是16.1.4版本,建议您那边用这个版本再试一下看看还会不会出现这个问题。

Weason_Zhu 发表于 2023-7-12 15:00:59


左边是本地打开的,右边是导入在线编辑器
页: [1] 2 3
查看完整版本: SpreadJS加载excel如何避免因excel的编辑语言不同而影响列宽