找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-4 09:57:05
10#
好的,感谢您的配合,这边反馈一下。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-4 12:09:30
11#
您好,这个问题在使用IO的时候会出现吗?还是说只有在ExcelIO的时候才会出现?能否麻烦您确认一下?
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
innerwang
金牌服务用户   /  发表于:2024-3-5 10:04:47
12#
Joestar.Xu 发表于 2024-3-4 12:09
您好,这个问题在使用IO的时候会出现吗?还是说只有在ExcelIO的时候才会出现?能否麻烦您确认一下?

目前仅使用了 excelIO, 没有使用io, 需要我使用io 测试一下吗?

不过我们项目暂时没法迁到io, 因为需要利用 excelIO 解析出来的json 做一些处理再导入
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-5 10:11:40
13#
innerwang 发表于 2024-3-5 10:04
目前仅使用了 excelIO, 没有使用io, 需要我使用io 测试一下吗?

不过我们项目暂时没法迁到io, 因为需 ...

是的,需要您用IO测试后排查一下相关的问题。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
innerwang
金牌服务用户   /  发表于:2024-3-5 11:10:45
14#
Joestar.Xu 发表于 2024-3-5 10:11
是的,需要您用IO测试后排查一下相关的问题。

你好

使用 io 导入后,在 Chrome 上列宽是 195
image.png533611144.png
在 firefox 上是 181
image.png261518248.png
在 safari 下会报错
image.png188615721.png



另:在 safari 下使用 excelIO 导入,宽度是 178
image.png705338439.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-5 11:21:00
15#
非常感谢,这边反馈一下。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
innerwang
金牌服务用户   /  发表于:2024-3-15 10:38:57
17#
Joestar.Xu 发表于 2024-3-14 16:37
您好,经调研,您的Excel文件的默认字体是“sans-serif”,不同的浏览器、不同的操作系统,甚至同一浏览器 ...

听起来在旧版和新版都需要调用registerMaxDigitWidth,

如果我只在新版做这个处理,是无法解决上述问题的吗?

因为用户使用我们的系统,编辑完excel 文件后,不一定会改,所以步骤2不一定会执行,若只有3和4这两部,能解决问题吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-15 14:06:09
18#
您好,由于导入和导出Excel文件时,列宽是基于默认字体的,所以如果想要导出再导入的列宽保持不变,应该将未知字体的maxDigitWidth信息注册到SpreadJS中。SpreadJS的版本并不重要。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-15 14:11:09
19#
您可以直接参考下文中的代码,然后导入Excel文件,列宽将会是200px。

但实际上这并不是正确的方法,因为之前的模板文件中,列宽并不是200px:

1、如果想直接导入之前的模板文件,并且希望列宽为200px,则应该运行代码

GC.Spread.Excel.IO.registerMaxDigitWidth("sans-serif", 11, 9);

2、但实际上第三个参数 9 在Windows环境下是不正确的,应该是8。

因为通过Math.floor(72 / 8.38)计算,列宽为178px(在windows环境下打开模板文件,列宽显示为178px,导入Excel文件,SpreadJS的列宽应与Excel相同)。

3、列宽从200px变为178px是因为在导出Excel文件时,没有注册“sans-serif”的maxDigitWidth,浏览器自动计算出maxDigitWidth为9。

换句话说,您给出的Excel文件中的列宽计算并不正确。如果用户希望保证Excel文件和SpreadJS中的列宽保持一致,并且在导入和导出时不会改变,则应将“sans-serif”的maxDigitWidth注册为8,然后重新导出一个具有正确列宽的新 Excel 文件。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-3-18 17:28:20
20#
您好,请问您的问题是否已经解决,如果仍未解决,欢迎继续回帖,我们来协助调研。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部