Как конвертировать весь файл Excel в изображение на C#

Как конвертировать весь файл Excel в изображение на C#

Рендеринг файлов Excel в виде изображений необходим при встраивании таблиц в веб-страницы, документацию или отчеты. Эта статья демонстрирует, как конвертировать целую книгу Excel в форматы изображений высокого качества с использованием Aspose.Cells для .NET.

Зачем конвертировать книги в изображения?

  • Генерировать предварительные просмотры для файлов Excel
  • Архивировать таблицы в форматах изображений
  • Встраивать содержимое таблиц в отчеты или печатные рабочие процессы
  • Отображать таблицы в приложениях, которые не поддерживают нативный просмотр Excel

Пошаговая реализация

Шаг 1: Установите Aspose.Cells для .NET

Добавьте Aspose.Cells в ваш проект с помощью NuGet:

dotnet add package Aspose.Cells

Шаг 2: Загрузите файл Excel

Workbook workbook = new Workbook("Book1.xlsx");

Шаг 3: Настройте параметры изображения

ImageOrPrintOptions options = new ImageOrPrintOptions
{
    ImageType = ImageType.Png,
    OnePagePerSheet = true,
    HorizontalResolution = 200,
    VerticalResolution = 200
};

Эти настройки контролируют формат вывода и разрешение. Вы также можете настроить:

  • Transparent для фона
  • OnlyArea для исключения полей
  • PrintingPageType для того, какой контент включать

Шаг 4: Рендеринг книги

WorkbookRender renderer = new WorkbookRender(workbook, options);

Шаг 5: Конвертируйте каждую страницу в изображение

Пройдитесь по страницам и экспортируйте каждую:

for (int i = 0; i < renderer.PageCount; i++)
{
    string fileName = $"workbook_page_{i + 1}.png";
    renderer.ToImage(i, fileName);
}

Это сгенерирует одно изображение на каждую логическую страницу на основе текущей печатной компоновки.

Шаг 6: Сохраните изображения

Вышеуказанный код уже сохраняет каждый файл изображения на диск с использованием заданного имени.

// Вывод:
// workbook_page_1.png
// workbook_page_2.png
// ...

Шаг 7: Дополнительные улучшения

Вы можете дополнительно настроить рендеринг изображений:

// Пример: показать сетку
options.ShowGridLines = true;

// Пример: отобразить все содержимое листа на одной странице
options.AllColumnsInOnePagePerSheet = true;

Лучшие практики

  • Используйте высокое разрешение (200+ dpi) для изображений печатного качества.
  • Включите AllColumnsInOnePagePerSheet для широких листов.
  • Объедините вывод в PDF или галерею изображений для презентаций.

Общие проблемы и решения

ПроблемаРешение
Выходное изображение пустоеУбедитесь, что книга загружена и содержит видимые данные
Изображение обрезаноУстановите OnePagePerSheet = true или отрегулируйте масштабирование страниц
Низкое качество выводаУвеличьте HorizontalResolution и VerticalResolution
 Русский