Вставка изображения в ячейку

Введение

Точное вписывание изображения в одну ячейку — распространённое требование при разработке электронных таблиц, которые служат визуальными отчётами, каталогами продукции, справочниками сотрудников, панелями мониторинга или складскими списками. Вместо того чтобы растягивать изображение на множество ячеек или свободно размещать его на рабочем листе, может потребоваться чистое изображение, привязанное к ячейке, которое остаётся выровненным с ячейкой-владельцем. Aspose.Cells поддерживает этот сценарий двумя взаимодополняющими способами:

  • Подход 1 — разместить плавающее изображение поверх ячейки. Добавьте Picture на рабочий лист, задайте для placement значение MoveAndSize и настройте ячейки привязки (upperLeftRow, upperLeftColumn, lowerRightRow, lowerRightColumn) так, чтобы изображение покрывало ровно одну ячейку.
  • Подход 2 — встроить изображение непосредственно в ячейку. Присвойте байты изображения свойству embeddedImage ячейки. Изображение автоматически масштабируется по отображаемой области ячейки и перемещается вместе с ячейкой. Далее в статье рассматриваются оба подхода, поясняются соответствующие API и демонстрируется их использование в коде.

Подход 1: размещение изображения над ячейкой

Плавающее изображение — это объект Picture, который существует на слое рисования рабочего листа. Хотя он не принадлежит какой-либо одной ячейке, он привязан к диапазону ячеек. Ячейки привязки изображения — его левый верхний и правый нижний углы — определяют его визуальные границы на рабочем листе. По умолчанию только что добавленное изображение охватывает несколько ячеек. Чтобы плавающее изображение покрывало ровно одну ячейку, необходимо:

  1. Добавить изображение с помощью worksheet.pictures.add(row, column, stream), что привязывает новое изображение к указанной ячейке.
  2. Задать четыре свойства привязки так, чтобы ограничивающий прямоугольник изображения совпадал с целевой ячейкой.
  3. Установить picture.placement в значение PlacementType.MoveAndSize, чтобы изображение перемещалось и изменяло размер вместе с базовой ячейкой, когда пользователь меняет ширину столбца или высоту строки.

Привязка изображения к одной ячейке

Привязка изображения определяется четырьмя свойствами с индексами, начинающимися с нуля:

  • picture.upperLeftRow — индекс строки верхней границы изображения.
  • picture.upperLeftColumn — индекс столбца левой границы изображения.
  • picture.lowerRightRow — индекс строки нижней границы изображения. Чтобы нижняя граница изображения располагалась внизу строки r, задайте значение r + 1.
  • picture.lowerRightColumn — индекс столбца правой границы изображения. Чтобы правая граница изображения располагалась справа от столбца c, задайте значение c + 1.

Связанные статьи