找回密码
 立即注册

QQ登录

只需一步,快速开始

宇宙风

注册会员

7

主题

20

帖子

109

积分

注册会员

积分
109
宇宙风
注册会员   /  发表于:2022-11-22 19:14  /   查看:3967  /  回复:10
10金币
本帖最后由 Clark.Pan 于 2023-1-10 12:28 编辑

附件里面有个excel文件,源文件、导入后,导出后所显示的图片宽高比例各不相同,在线表格编辑器中可复现。

请问原因是什么,应该如何解决? 示例.zip (8.66 MB, 下载次数: 1454)

最佳答案

查看完整内容

您可以在您的代码中添加下面这段代码 添加后,导入excel ,然后导出excel ,图片比例是一致的。

10 个回复

正序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-11 09:20:08
11#
还有一种方案是在您的原始Excel中修改主题字体,如下图所示:
image.png856068115.png
将字体修改为宋体,而不是宋体(正文)
此时导入到SpreadJS中,结果如下:
image.png837487487.png
未设置前:
image.png609172362.png

设置后,导出到Excel文件,将于源文件保持一致。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-27 15:05:02
10#
本帖最后由 Ellia.Duan 于 2022-12-28 10:14 编辑

每台电脑设置的excel主题字体不同,导致的列宽有可能是不一样的。
比如我电脑中的excel打开,主题字体是等宽。
image.png267198180.png
您的excel打开的主题字体是宋体。
image.png49336546.png
所以说,这个主题字体不仅仅与excel相关,还有电脑操作系统相关。
所以SpreadJS以拿到单元格的字体,但是拿不到excel的主题字体。
回复 使用道具 举报
宇宙风
注册会员   /  发表于:2022-12-27 10:13:00
9#
Ellia.Duan 发表于 2022-12-27 09:49
您可以在您的代码中添加下面这段代码
添加后,导入excel ,然后导出excel ,图片比例是一致的。

有没有办法不把style.font写死为"14.6px 宋体",而是导入文件的时候识别出来应该设置成哪种字体
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-22 18:08:00
7#
本帖最后由 Ellia.Duan 于 2022-12-23 16:50 编辑

这个需要调研下,调研出来给您回复。[SJS-16362]
回复 使用道具 举报
宇宙风
注册会员   /  发表于:2022-12-22 17:35:29
6#
Ellia.Duan 发表于 2022-12-9 16:03
您好,经过调研,与字体有关。在您提供的附件中,默认字体是宋体。在excel或者SpreadJS中,字体会改变列宽 ...

有没有办法导入的时候让spreadjs默认字体改成与execl文件的默认字体一样,从而避免变形?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-9 16:03:14
5#
您好,经过调研,与字体有关。在您提供的附件中,默认字体是宋体。在excel或者SpreadJS中,字体会改变列宽。而导入到SpreadJS中,默认字体是Calibri。
这边做了一个测试。
在excel中,设置默认字体是Calibri Snipaste_2022-12-09_16-00-39.png
另存为2.xlsx
其中2.xlsx中图片宽度是5.57厘米
image.png982023620.png
将其导入到在线表格编辑器中,在导出为excel文件,3.xlsx
此时打开3.xlsx发现图片宽度还是5.57厘米
image.png97283629.png

发现图片宽度未变化。

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-24 09:50:39
4#
本帖最后由 Ellia.Duan 于 2022-11-24 13:56 编辑

您好,此问题已复现,也明白了您的需求,这边会将贴子置为保留处理,将深入调查原因。待有结果会及时通知您。【SJS-15925】
回复 使用道具 举报
宇宙风
注册会员   /  发表于:2022-11-23 21:27:48
3#
Ellia.Duan 发表于 2022-11-23 14:44
您好,在线表格编辑器导入您附件中的excel文件后,其图片宽高是:

将其导出为excel后,其图片尺寸与原始 ...

1、源文件在本地打开的图片:大概是宽210高458
2、导入到在线表格编辑器中展示的图片:宽186高458
3、从在线表格编辑器导出后在本地打开打开的图片:大概是宽203高458
这三张图片的宽度好像各不相同,高度倒是一致
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-23 14:44:13
2#
您好,在线表格编辑器导入您附件中的excel文件后,其图片宽高是:
image.png702619323.png
将其导出为excel后,其图片尺寸与原始excel图片尺寸差异如下图所示:
image.png22266234.png


由于差异仅差0.2厘米,所以您问题中说的是导出为excel的图片与源文件的宽高比例不一致,还是导入到在线表格编辑器的图片尺寸与源文件的宽高不一致??


回复 使用道具 举报
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-22 19:14:30
来自 8#
宇宙风 发表于 2022-12-22 17:35
有没有办法导入的时候让spreadjs默认字体改成与execl文件的默认字体一样,从而避免变形?

您可以在您的代码中添加下面这段代码
  1.     var style = spread.getSheet(0).getDefaultStyle();

  2.             style.themeFont = undefined;

  3.             style.font = "14.6px 宋体";

  4.             spread.getSheet(0).setDefaultStyle(style);
复制代码
添加后,导入excel ,然后导出excel ,图片比例是一致的。
image.png665186156.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部