Matthew.Xue 发表于 前天 11:47

优米信息 发表于 2025-1-7 11:38
有没有给单元格生成图片的api然后再通过addPicture覆盖到单元格中

addPicture添加的一定是一个浮动的(位置可变的)的图片(图片属于一个shape),而非在某个单元格内部,但是你可以通过startRow/endRow/startColumn/endColumn等方法让其和某个单元格重合。
至于“给单元格生成图片”,我理解是将一个单元格区域转换为图片,我们有区域快照的功能,区域快照也属于一个shape,shape有一个toImageSrc方法,可以将其转换为base64图片,拿到图片后删除该快照即可。
https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Shapes.CameraShape#toimagesrc

优米信息 发表于 前天 12:08

Matthew.Xue 发表于 2025-1-7 11:47
addPicture添加的一定是一个浮动的(位置可变的)的图片(图片属于一个shape),而非在某个单元格内部, ...

是的 你可以写一个示例看看吗 非常感谢

Matthew.Xue 发表于 前天 14:33

优米信息 发表于 2025-1-7 12:08
是的 你可以写一个示例看看吗 非常感谢

其实这块的代码量非常小,前面已经给出了具体的实现方案,只需要用代码写出来就好了~


// 添加一些假数据
sheet.setValue(1, 1, 1)
sheet.setValue(1, 2, 2)
sheet.setValue(2, 1, 3)
sheet.setValue(2, 2, 4)

let style = new GC.Spread.Sheets.Style()
style.backColor = "red"
style.fontWeight = "bold"
style.foreColor = "yellow"
sheet.getRange(1, 1, 2, 2).setStyle(style)

// 暂停绘制,防止区域快照出现在页面中
sheet.suspendPaint()

// 添加区域快照
let cameraShape = sheet.shapes.addCameraShape("camerashape1", "Sheet1!B2:C3")
// 拿到区域快照的图像
let imgSrc = cameraShape.toImageSrc()
// 移除区域快照
sheet.shapes.remove("camerashape1")
// 添加图片
let picture = sheet.shapes.addPictureShape("picture1", imgSrc)
// 设置图片的位置和B5:C6重合
picture.startRow(4)
picture.endRow(5)
picture.startColumn(1)
picture.endColumn(2)

sheet.resumePaint()


优米信息 发表于 前天 14:57

Matthew.Xue 发表于 2025-1-7 14:33
其实这块的代码量非常小,前面已经给出了具体的实现方案,只需要用代码写出来就好了~

怎么获取区域的引用字符串呢 比如"Sheet1!B2:C3"

优米信息 发表于 前天 15:34

Matthew.Xue 发表于 2025-1-6 19:27
关于将区域变成可被公式引用,可以参考此api:
https://demo.grapecity.com.cn/spreadjs/help/api/modul ...

报错了
cameraShape.toImageSrc is not a function

Matthew.Xue 发表于 前天 16:38

优米信息 发表于 2025-1-7 15:34
报错了
cameraShape.toImageSrc is not a function

可能是您的版本过低,请升级到17.1.0之后的版本,您目前应该是已经购买了V17版本,可以直接升级的
页: 1 [2]
查看完整版本: 导出excel的时候如何把浮动对象 也导出来