找回密码
 立即注册

QQ登录

只需一步,快速开始

jiankeyan

中级会员

98

主题

268

帖子

792

积分

中级会员

积分
792
jiankeyan
中级会员   /  发表于:2021-3-30 16:46  /   查看:1662  /  回复:3
添加图片的时候位置与设定的不一致,请问如何解决
28e93080bfdffa0041b55353d21f579.png
11db49c476ffc5c704dc4bc87ff1d15.png

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-30 17:06:14
沙发
我先确认一下你说的“添加图片的时候位置与设定的不一致”问题,
1.你是在前端设置的图片的位置吧,具体是如何设置的?
2.你提到的数据库中的四个位置参数。来自于spreadjs前端给到,这个具体是如何获取的?

因为目前要判断是Spreadjs传过来的位置参数本身有问题还是GCEXCEL插入时产生的位置错误

我建议你可以列一下详细的重现问题步骤。我来给你验证问题原因
回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2021-3-30 18:13:29
板凳
1 spreadjs保存图片 当时获取到  x  y   w  h  
传到数据库 js代码如下:
af41198fb0faecc276e581c75a442cd.png



2 目前想着  把这些数据直接保存到json里面  代码如下:
image.png713163451.png

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-31 09:18:21
地板
本帖最后由 Richard.Ma 于 2021-3-31 12:25 编辑

已经帮你验证
这个问题的主要原因是SpreadJS和GC Excel的长度单位不同,SpreadJS采用像素Pixel,而GC Excel采用印刷单位Point

Point和Pixel之间的转换关系如下,Windows系统默认的DPI是96:

points = pixels * 72 / Dpi
pixels = points * DpiX / 72

因此,例如你从spreadjs中获取存在数据库中的宽度是100,那么在gc中插入同样的宽度应该是100*72/96
按此进行换算即可

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部