GCExcel插入图片固定位置
本帖最后由 Winny 于 2022-12-6 11:35 编辑SpreadJS V15之后,图片迁移至形状下,提供了裁剪、透明度、旋转、固定位置等相关API,如下所示:
其中,比较高频的用法就是结合startRow、startColumn、endRow、endColumn将图片固定在某一区域中,具体代码如下:
let designer = GC.Spread.Sheets.Designer.findControl(document.getElementById('gc-designer-container'))
let spread = designer.getWorkbook()
let sheet = spread.getActiveSheet()
let pic01 = sheet.shapes.addPictureShape("pic01","https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR1ztd9EV-bETHnpd5SDxCCahPUV34AUZZEtw&usqp=CAU",0,0,225,225)
pic01.startRow(3)
pic01.endRow(12)
pic01.startColumn(2)
pic01.endColumn(5)
pic01.allowMove(false)
pic01.allowResize(false)通过上边的代码,即可将图片固定在视图区域中。但是当迁移到服务端来实现该功能时,就会有点茫然,因为GCExcel图片上并找不到固定行列信息的设置方法。GCExcel中addPictureInPixel有多种构造函数 ,可以采用下边代码的中的构造函数,5个参数依次代表文件路径、左偏移、上偏移、图片宽度、图片高度。其中左边距和上边距可以巧妙的借助Range的信息来检测,以此实现在特定区域加图片。
Workbook wb = new Workbook();
IWorksheet ws = wb.getWorksheets().get(0);
// 使用单元格名称获取区域
// IRange range = ws.getRange("A1:D4");
// 使用行列索引获取区域
IRange range = ws.getRange(3, 3, 7, 7);
Rectangle rect = CellInfo.GetRangeBoundary(range);
ws.getShapes().addPictureInPixel("开心果.png", rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
wb.save("test.xlsx");
页:
[1]