在单元格中插入图片

简介

在设计作为可视化报表、产品目录、员工通讯录、仪表板或库存清单的电子表格时,将图片精确适配到单个单元格是一项常见需求。与其将图片拉伸跨越多个单元格,或者松散地放置在工作表上,您可能更希望获得一张与所属单元格保持对齐的、整洁的、绑定到单元格的图片。 Aspose.Cells 通过两种互补的方式来支持这一场景:

  • 方法一 — 在单元格上放置浮动图片。 向工作表添加一个 Picture,将其 placement 设置为 MOVE_AND_SIZE,并调整其锚定单元格(upper_left_row、upper_left_column、lower_right_row、lower_right_column),使图片恰好覆盖一个单元格。
  • 方法二 — 将图片直接嵌入单元格。 将图片字节赋值给单元格的 embedded_image 属性。图片会自动缩放以适应单元格的显示区域,并随单元格一起移动。 本文后续章节将逐一介绍这两种方法,解释相关的 API,并展示如何在代码中使用它们。

方法一:将图片放置在单元格上

浮动图片是一个 Picture 对象,位于工作表绘图图层上。虽然它不属于任何单个单元格,但它被锚定在一个单元格区域。图片的锚定单元格——左上角和右下角——决定了图片在工作表上的视觉范围。默认情况下,新添加的图片会跨越多个单元格。 要使浮动图片恰好覆盖一个单元格,您需要:

  1. 使用 Worksheet.pictures.add(row, column, stream) 添加图片,该方法会将新图片锚定到给定的单元格。
  2. 设置四个锚定属性,使图片的边界矩形与目标单元格重合。
  3. 将 Picture.placement 设置为 PlacementType.MOVE_AND_SIZE,这样在用户更改列宽或行高时,图片会与底层单元格一起移动并调整大小。

将图片锚定到单个单元格

图片的锚点由四个从零开始的索引属性定义:

  • Picture.upper_left_row — 图片顶边所在的行索引。
  • Picture.upper_left_column — 图片左边所在的列索引。
  • Picture.lower_right_row — 图片底边所在的行索引。要使图片的底边位于行 r 的底部,请将其设置为 r + 1。
  • Picture.lower_right_column — 图片右边所在的列索引。要使图片的右边位于列 c 的右侧,请将其设置为 c + 1。

相关文章