[]
您可以通过IShapes接口的 AddPicture 方法在电子表格的单元格中插入图片。该方法允许您在特定位置或特定范围内添加图片。GcExcel中的 IPictureFormat接口 允许用户在电子表格中操作时自定义和格式化图片。
在 GcExcel 中处理图片时,请参考以下示例代码:
// 通过流添加图片
string path = @"Images\flower.jpg";
FileStream stream = System.IO.File.Open(path, FileMode.Open);
IShape picture = worksheet.Shapes.AddPicture(stream, ImageType.JPG, 480, 10, 100, 100);
// 通过文件在特定位置添加图片
// IShape picture = worksheet.getShapes().addPicture(@"Images\flower.jpg", 480, 10, 100, 100);
// 向特定范围添加图片
// IShape pictureInRange = worksheet.getShapes().addPicture("flower.jpg", worksheet.Range["D3:F5"]);
// 填充插入的图片
picture.getFill().solid();
picture.getFill().getColor().setRGB(Color.AliceBlue);
// 自定义插入的图片
picture.getPictureFormat().getCrop().setPictureWidth(80);参考以下示例代码为图片分配名称:
// 创建新工作簿
Workbook workbook = new Workbook();
// 获取默认工作表
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 创建带有自定义名称的形状
IShape shape = worksheet.getShapes().addPicture("Custom Name to Image", "image.png", 10, 10, 250, 150);
// 获取图片名称
System.out.println(shape.getName().toString());
// 保存到Excel文件
workbook.save("PictureName.xlsx");链接图片,也称为相机形状或相机图片,指的是复制范围的实时动态快照。也就是说,当复制的单元格范围中的值发生变化时,其快照中也会自动反映出相同的变化。在Microsoft Excel中,此功能通过名为“链接图片”的特殊粘贴选项提供。此功能在仪表板和报表中特别有用,因为您可以显示动态变化的图像,甚至可以根据可用空间调整它们的大小。

GcExcel Java允许您通过IShape接口的addCameraPicture方法创建这些动态链接图片。此方法接受链接图片的源范围以及目标范围相对于文档的位置坐标作为参数。您还可以使用此方法的另一个重载指定要添加链接图片的单元格范围。由于链接图片也只是另一种图片,因此可以像其他任何图片一样调整其大小和进行格式化。
Workbook workbook = new Workbook();
workbook.getActiveSheet().getRange("A1").getInterior().setColor(Color.GetBlue());
workbook.getActiveSheet().getRange("B5").getInterior().setColor(Color.GetYellow());
// 在特定位置添加链接图片
IShape shape = workbook.getActiveSheet().getShapes().addCameraPicture("=$A$1:$B$4", 100, 100);
//// 在特定单元格范围添加链接图片
IShape shapeRange = workbook.getActiveSheet().getShapes().addCameraPicture("=$A$1:$B$5", worksheet.setRange["G1:H5"]);
workbook.save("LinkedPicture.xlsx");注意:目标范围和要添加的链接图片必须位于同一工作表中。否则,将导致InvalidOperationException。
您可以通过将IPictureFormat.setTransparentBackground方法设置为true来决定链接图片是否应显示为透明背景。
// 设置透明背景
shape.getPictureFormat().setTransparentBackground(true);
// 设置透明度
shape.getPictureFormat().setTransparency(0.8);您还可以通过将IPictureFormat.setReference方法设置为null,将链接图片转换为普通的静态图片。而对于普通图片,当此属性设置为某个引用时,它会被转换为链接图片。有关将普通图片转换为链接图片或反之的详细实现,请参见在线演示。
GcExcel通过在IPictureFormat接口中提供setTransparency方法来支持控制图像的透明度。透明度值可以在0.0(不透明)到1.0(完全透明)之间变化。
参考以下示例代码设置图像的透明度:
// 创建新工作簿
Workbook workbook = new Workbook();
// 使用工作表索引获取工作表
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 添加图片
IShape picture = worksheet.getShapes().addPicture("Image.png", 20, 20, 490, 120);
// 将图片的透明度设置为60%
picture.getPictureFormat().setTransparency(0.6);
// 保存到Excel文件
workbook.save("ImageTransparency.xlsx");