找回密码
 立即注册

QQ登录

只需一步,快速开始

卑微的打工狗
金牌服务用户   /  发表于:2023-8-10 15:49  /   查看:1736  /  回复:10
2金币
本帖最后由 Joestar.Xu 于 2023-10-20 09:28 编辑


产品:SpreadJS
版本:15.1.4
问题编号:SJS-19703
LastReview:2023/10/20
问题还在修复中。

利用  shape.addPictureShape()  方法在指定的单元格内添加图片,图片正常添加成功。

在 spreadjs 中展示的为单元格的有边框和下边框被图片覆盖,如下图所示
image.png549351806.png
但是在下载的excel中,展示的是图片的上边框和做边框,被图片覆盖。如下图所示
image.png573974914.png
spreadjs和下载的excel,对于表格展示的有些不一样。



如果,我在 shape.addPictureShape() 的时候,给图片的宽和高,分别减去1,再spreadjs中会显示正常,图片完全再表格中。如下图所示:
image.png959515380.png
但是在在 excel 下载中,展示的大小有些奇怪,如下图所示:
image.png941236877.png
明明只减小了1,但是展示中,好像不止减去了1



请问,如何能均衡spreadjs和下载后的excel的展示,最好都显示在表格中,不覆盖四边的任何边框。

如果无法均衡,请问如何再excel中把图片都展示再表格中

10 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-10 17:30:54
沙发
您好,从您的描述中无法判断问题的原因,请您提供一个可以复现这个问题的Demo。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
卑微的打工狗
金牌服务用户   /  发表于:2023-8-11 16:44:00
板凳
Joestar.Xu 发表于 2023-8-10 17:30
您好,从您的描述中无法判断问题的原因,请您提供一个可以复现这个问题的Demo。

请问您有没有关于  shape 相关的依赖,由于我没有 shape  相关依赖,总是会报这个错误

sheet.shapes.addPictureShape(`pic1`, base64Pic, positionX, positionY, width, height)


image.png687573547.png image.png760264587.png


回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-11 17:32:46
地板
您好,请查收附件。

gc.spread.sheets.shapes.15.2.2.min.js

746.35 KB, 下载次数: 81

SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
卑微的打工狗
金牌服务用户   /  发表于:2023-8-14 11:12:20
5#
Joestar.Xu 发表于 2023-8-10 17:30
您好,从您的描述中无法判断问题的原因,请您提供一个可以复现这个问题的Demo。

附件demo已上传,请查收

图片spreadjs边框问题的demo.zip

1.48 MB, 下载次数: 66

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-14 12:21:19
6#
您好,问题已重现,这边调研一下,后续有进展我会在本贴中回复您。

本帖先做保留处理了。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-17 08:54:28
7#
您好,该问题已被确认为是一个Bug,目前正在修复中,等修复完毕我会在帖子下回复您。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-9-14 16:00:49
8#
此问题目前正在修复中,等修复完毕我会在帖子下回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-10-30 16:55:01
9#
您好,因为SpreadJS和Excel的差异,目前有一个临时的解决方案提供给您,看能否解决您的问题:

在导出前调整每一个shape的位置,然后在导出完毕后将位置再调整回去:

sheet.shapes.all().forEach((sp) => { sp.x(sp.x() + 1); sp.y(sp.y() + 1);});
let json = spread.toJSON({ includeBindingSource: true });
sheet.shapes.all().forEach((sp) => { sp.x(sp.x() - 1); sp.y(sp.y() - 1);});
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
卑微的打工狗
金牌服务用户   /  发表于:2023-11-7 09:37:40
10#
Joestar.Xu 发表于 2023-10-30 16:55
您好,因为SpreadJS和Excel的差异,目前有一个临时的解决方案提供给您,看能否解决您的问题:

在导出前 ...

您好,问题已解决,可结贴
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部