Как вставить изображение в Excel на C#
Добавление изображений в файлы Excel может улучшить визуализацию данных, брендинг или отчетность. В этом посте мы рассмотрим, как программно вставлять изображения в файлы Excel с помощью Spire.XLS для .NET — мощной библиотеки .NET для манипуляции с Excel.
Мы рассмотрим два сценария:
- Вставка изображения с локального диска
- Вставка изображения по URL-адресу
Библиотека .NET для добавления изображений в Excel
Spire.XLS для .NET — это функционально насыщенная библиотека, которая позволяет разработчикам создавать, редактировать и конвертировать файлы Excel без зависимости от Microsoft Office. Среди ее многочисленных возможностей — поддержка вставки изображений в листы Excel с помощью всего лишь нескольких строк кода.
Чтобы начать, установите библиотеку через NuGet:
Install-Package Spire.XLS
Вставка изображения с диска в Excel
Spire.XLS предлагает метод Pictures.Add(row, column, imagePath), который позволяет разработчикам вставлять изображение в указанной позиции на листе. Следующий пример демонстрирует, как добавить изображение, хранящееся на вашем компьютере, в лист Excel.
using Spire.Xls;
namespace InsertImageInExcel
{
class Program
{
static void Main(string[] args)
{
// Инициализация экземпляра Workbook
Workbook workbook = new Workbook();
// Получение первого листа
Worksheet sheet = workbook.Worksheets[0];
// Вставка изображения в лист
sheet.Pictures.Add(1, 1, @"C:\image\sample.jpg");
// Сохранение результирующего файла
workbook.SaveToFile("InsertImageFromDisk.xlsx", ExcelVersion.Version2016);
// Освобождение ресурсов
workbook.Dispose();
}
}
}
Вставка изображения из сети в Excel
Если изображение размещено в Интернете, мы можем скачать его и вставить в Excel.
using Spire.Xls;
using System.Drawing;
using System.IO;
using System.Net;
namespace InsertWebImageInExcel
{
class Program
{
static void Main(string[] args)
{
// Инициализация экземпляра Workbook
Workbook workbook = new Workbook();
// Получение первого листа
Worksheet sheet = workbook.Worksheets[0];
// Указание URL изображения
string URL = «https://www.e-iceblue.com/downloads/demo/Logo.png»;
// Инициализация экземпляра WebClient
WebClient webClient = new WebClient();
// Скачивание изображения в виде массива байтов с URL
byte[] imageData = webClient.DownloadData(URL);
// Инициализация экземпляра MemoryStream из массива байтов
MemoryStream objImage = new MemoryStream(imageData);
// Создание объекта Image из памяти
Image image = Image.FromStream(objImage);
// Вставка изображения в лист
sheet.Pictures.Add(3, 2, image);
// Сохранение результирующего файла
workbook.SaveToFile("InsertWebImage.xlsx", ExcelVersion.Version2016);
// Освобождение ресурсов
workbook.Dispose();
}
}
}
Ключевые моменты:
- WebClient загружает изображение из Интернета.
- MemoryStream и Image.FromStream конвертируют загруженные байты в объект Image.
- Pictures.Add() вставляет изображение в лист.
Заключение
С помощью Spire.XLS для .NET вставка изображений в Excel — будь то с диска или из сети — осуществляется просто. Эта функциональность полезна для создания динамических отчетов, панелей мониторинга или брендированных документов программно.