找回密码
 立即注册

QQ登录

只需一步,快速开始

鸳鸯配2024

金牌服务用户

30

主题

163

帖子

413

积分

金牌服务用户

积分
413
鸳鸯配2024
金牌服务用户   /  发表于:2024-9-9 10:34  /   查看:599  /  回复:12
本帖最后由 Wilson.Zhang 于 2024-9-24 16:55 编辑

产品:SpreadJS
版本:17.1.6
调研编号:SJS-26581
Last Review:非问题,通过API添加图表时名称参数应为字符串。

文件里面包含图片,导出为Excel就会报错。


12 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-9-9 12:05:04
沙发
您好!请问具体报错信息是什么呢?同时也需要您提供一个能够复现问题的demo,我们据此分析下。
回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-9-12 09:52:49
板凳
Wilson.Zhang 发表于 2024-9-9 12:05
您好!请问具体报错信息是什么呢?同时也需要您提供一个能够复现问题的demo,我们据此分析下。

你看下,导入之后,再导出,就会有问题。因为里面有包含图片。

临时表格.xlsx

34.99 KB, 下载次数: 11

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-12 10:39:03
地板
鸳鸯配2024 发表于 2024-9-12 09:52
你看下,导入之后,再导出,就会有问题。因为里面有包含图片。

我们在官网的在线表格编辑器导入了您提供的.xlsx文件,之后再导出为.xlsx文件,未看到明显的错误信息,如下动图所示:
导出图片验证.gif

如果我们的操作和理解存在差异,需要您详细介绍下问题情况。
回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-9-23 16:10:33
5#
Wilson.Zhang 发表于 2024-9-12 10:39
我们在官网的在线表格编辑器导入了您提供的.xlsx文件,之后再导出为.xlsx文件,未看到明显的错误信息,如 ...

你帮忙看下这个文件
我这边导出的时候,会报错


企业微信截图_17270790231979.png180760497.png

有图片的数据22.txt

2.39 MB, 下载次数: 12

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-23 17:19:37
6#
鸳鸯配2024 发表于 2024-9-23 16:10
你帮忙看下这个文件
我这边导出的时候,会报错

您好!导入您提供的数据后看到文件中包含了5张图片,其中四张相同,如下图所示。导出时复现了您所提及的现象,于是,每次删除一张图片再导出,均异常,报错信息相同。删除文件中所有的五张图片后,再导出即正常。

1727082689258.png853681335.png

由排查过程中的现象,猜测可能是图片的问题。于是,我们按照您文件中的内容结构,在原来填充图片的单元格上,通过ShapeCollection:addPictureShape()添加了图片,而后可正常导出,导出后亦可正常导入。如下动图所示:

添加图片正常导出.gif

您可以参考附件demo,尝试在其中添加您的其他代码,看问题是否还能复现。

添加图片.html

948.58 KB, 下载次数: 10

回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-9-23 17:46:28
7#
本帖最后由 鸳鸯配2024 于 2024-9-23 17:47 编辑
Wilson.Zhang 发表于 2024-9-23 17:19
您好!导入您提供的数据后看到文件中包含了5张图片,其中四张相同,如下图所示。导出时复现了您所提及的 ...

如果不是通过ShapeCollection:addPictureShape()方法添加图片,导出就不行了吗?
有没有其它的解决办法?


如果删除图片,再导出的话,我知道是正常的,现在就是有添加了图片,导出就会有问题。

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-23 18:00:25
8#
鸳鸯配2024 发表于 2024-9-23 17:46
如果不是通过ShapeCollection:addPictureShape()方法添加图片,导出就不行了吗?
有没有其它的解决办法 ...

那需要您告知下您添加图片的方式,我们测验下。
回复 使用道具 举报
鸳鸯配2024
金牌服务用户   /  发表于:2024-9-23 18:06:11
9#
Wilson.Zhang 发表于 2024-9-23 18:00
那需要您告知下您添加图片的方式,我们测验下。




方法是这样的
  1. spread.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
  2.         console.log("ClipboardPasting---粘贴图片---", sender, args);
  3.         if (args.pasteData.image) {
  4.             args.cancel = true;
  5.             addImgRow(args)
  6.         }
  7.     });
复制代码

  1. const addImgRow = (args)=>{
  2.     let Designer = GC.Spread.Sheets.Designer.findControl('designer-container');
  3.     let spread = Designer.getWorkbook()
  4.     let sheet = spread.getActiveSheet();
  5.     let rows = args.cellRange.row
  6.     let cols = args.cellRange.col

  7.     let height = sheet.getRowHeight(rows)   //获取第2行行高
  8.     let width = sheet.getColumnWidth(cols) //获取第2列宽度
  9.     // console.log(height, '--宽度--', width, '---args.cellRange--', args.cellRange)
  10.     let pic = sheet.shapes.addPictureShape(new Date().getTime(), args.pasteData.image, 0,0, width,height)
  11.     // let pic = sheet.shapes.addPictureShape(new Date().getTime(), args.pasteData.image, 0,0,width,height)
  12.     pic.startRow(rows)  //开始行在第二行
  13.     pic.startColumn(cols)  //开始列在第二列

  14.     pic.pictureStretch(GC.Spread.Sheets.ImageLayout.zoom);
  15.     pic.startRowOffset(0);
  16.     pic.startColumnOffset(0);
  17.     pic.endColumnOffset(height);
  18.     pic.endRowOffset(width);

  19.     pic.endRow(rows + args.cellRange.rowCount)  //结束行在第三行
  20.     pic.endColumn(cols + args.cellRange.colCount)     //结束列在第三列
  21.     pic.allowMove(false)  //图片不允许移动
  22.     pic.allowResize(false)  //图片不允许拉动调整大小
  23.     pic.dynamicMove(true)  //图片是否随插入行列移动
  24.     pic.dynamicSize(true)  //图片是否随行高列宽变化而变化
  25. }
复制代码
你帮忙看下。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-24 09:45:43
10#

您好!我们使用您提供的代码片段测试了下,发现可以正常导出ssjson文件,导出sjs和Excel文件有异常,如下动图所示。
插入图片导出异常.gif

需要调研下,调研编号为:SJS-26581,我们会及时向您同步结论。请您耐心等候!

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