找回密码
 立即注册

QQ登录

只需一步,快速开始

zjk

中级会员

67

主题

234

帖子

625

积分

中级会员

积分
625
zjk
中级会员   /  发表于:2023-12-25 14:52  /   查看:1201  /  回复:7
1金币
本帖最后由 Richard.Huang 于 2023-12-28 11:13 编辑



产品:SpreadJS
版本:V15.1.0


图片列表放置到单元格,预览时可以显示图片,excel导出显示不了 image.png379044494.png image.png899362487.png
  1. 显示图片的方法如下:addPics(sheet, picList, index) {
  2.     sheet.addRows(index+1, picList.length*2);
  3.     for (let i=0; i<picList.length; i++) {
  4.         let pic = picList[i];
  5.         this.setPic(sheet, pic, index);
  6.         index += 2;
  7.     }
  8.     return index;
  9. },
  10. setPic(sheet, pic, index) {
  11.     let row = index
  12.     sheet.addSpan(row+1, 1, 1, 4);
  13.     sheet.setRowHeight(row+1, 450);

  14.     var xhr = new XMLHttpRequest();
  15.     xhr.onload = function () {
  16.         var reader = new FileReader();
  17.         reader.onloadend = function () {
  18.             sheet.getCell(row+1, 1).backgroundImage(reader.result);
  19.         }
  20.         reader.readAsDataURL(xhr.response);
  21.     };
  22.     xhr.open('GET', this.getFileAccessHttpUrl(pic.path));
  23.     xhr.responseType = 'blob';
  24.     xhr.send();

  25.     sheet.addSpan(row+2, 1, 1, 4);
  26.     sheet.getCell(row+2, 1).value(pic.id).font("normal normal 12px simkai").hAlign(GC.Spread.Sheets.HorizontalAlign.center).vAlign(GC.Spread.Sheets.VerticalAlign.top);
  27.     sheet.setRowHeight(row+2, 40);
  28. },
复制代码

最佳答案

查看完整内容

您可以设置picture中的startRow endRow startColumn endColumn属性,该属性用于使图片 按照单元格的位置进行设置。 顺便说一下看到您用的是picture.add的方法设置图片,这个是早起SpreadJS设置图片的方式,目前已有更新的设置方式,详情参考下面: https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/shapes/shape-types/picture-shape/purejs 新的接口支持的功能更多一些。

7 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-25 14:52:43
来自 4#
本帖最后由 Clark.Pan 于 2023-12-26 09:35 编辑

您可以设置picture中的startRow endRow startColumn endColumn属性,该属性用于使图片
按照单元格的位置进行设置。


顺便说一下看到您用的是picture.add的方法设置图片,这个是早起SpreadJS设置图片的方式,目前已有更新的设置方式,详情参考下面:

https://demo.grapecity.com.cn/sp ... icture-shape/purejs
新的接口支持的功能更多一些。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-25 17:28:21
2#
您好,单元格背景图是SpreadJS的特性,不支持导出为Excel。

如果想要添加图片的话可以参考这个学习指南中的内容实现:https://demo.grapecity.com.cn/sp ... ure-shape#timestamp
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
zjk
中级会员   /  发表于:2023-12-26 09:12:43
3#
Joestar.Xu 发表于 2023-12-25 17:28
您好,单元格背景图是SpreadJS的特性,不支持导出为Excel。

如果想要添加图片的话可以参考这个学习指南 ...

我用了sheet.pictures.add的方法,但是他放置的位置是根据高度这些确定的,前面的行数,行高不固定,现在业主的需求是导出excel,图片放最后,一张图片一个单元格,有没有什么办法实现
回复 使用道具 举报
zjk
中级会员   /  发表于:2023-12-26 12:24:34
5#
Clark.Pan 发表于 2023-12-26 09:33
您可以设置picture中的startRow endRow startColumn endColumn属性,该属性用于使图片
按照单元格的位置进 ...

这个方法支持15.1.0版本么?用他报错:Cannot read properties of undefined (reading 'addPictureShape')。  代码:setPic(sheet, pic, index, high) {
                let row = index
                sheet.addSpan(row, 1, 1, 6);
                sheet.setRowHeight(row, 450);
                var xhr = new XMLHttpRequest();
                xhr.onload = function () {
                    var reader = new FileReader();
                    reader.onloadend = function () {
                        console.log("high", high)
                        var picture = sheet.shapes.addPictureShape(pic.path, reader.result, 100, 100, 200, 200);
                        // sheet.pictures.add(pic.path, reader.result, 40, high, 450, 450);

                    }
                    reader.readAsDataURL(xhr.response);
                };
                xhr.open('GET', this.getFileAccessHttpUrl(pic.path));
                xhr.responseType = 'blob';
                xhr.send();
                sheet.addSpan(row + 1, 1, 1, 6);
                sheet.getCell(row + 1, 1).value(pic.path).font("normal normal 12px simkai").hAlign(GC.Spread.Sheets.HorizontalAlign.center).vAlign(GC.Spread.Sheets.VerticalAlign.top);
                sheet.setRowHeight(row + 1, 40);
            },
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-26 15:35:31
6#
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-4 09:09:56
7#
您好,请问您的问题是否已经解决,如果仍未解决,欢迎继续回帖,我们来协助调研。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-1-16 18:01:12
8#
您好,由于您较长时间未回复,本贴先结帖了,有问题欢迎发新帖询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部