Как преобразовать Excel в миниатюру изображения на C#

Как преобразовать Excel в миниатюру изображения на C#

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

Зачем использовать тоннели?

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

Step-by-Step Руководство

Шаг 1: Установка Aspose.Cells

dotnet add package Aspose.Cells

Шаг 2: Загрузите рабочую книгу

Workbook workbook = new Workbook("FinanceReport.xlsx");
Worksheet sheet = workbook.Worksheets[0];

Шаг 3: Настройка вариантов рендерирования тоннелей

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

Шаг 4: Перевести первый рабочий лист на изображение

SheetRender renderer = new SheetRender(sheet, options);
renderer.ToImage(0, "preview_temp.png");

Шаг 5: Рециркулировать изображение в тоннельные размеры (опционально)

Вы можете использовать графическую библиотеку (например, System.Drawing) для восстановления изображения:

using System.Drawing;

Bitmap original = new Bitmap("preview_temp.png");
Bitmap thumbnail = new Bitmap(original, new Size(160, 120));
thumbnail.Save("thumbnail.png");

Шаг 6: Используйте изображение тоннеля

Теперь у вас есть легкий тоннель, подходящий для предварительных просмотров.

Полный примерный код

using System;
using System.Drawing;
using Aspose.Cells;
using Aspose.Cells.Rendering;

class Program
{
    static void Main()
    {
        // Load Excel file
        Workbook workbook = new Workbook("FinanceReport.xlsx");
        Worksheet sheet = workbook.Worksheets[0];

        // Configure low-resolution options
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 96,
            VerticalResolution = 96,
            OnePagePerSheet = true
        };

        // Render full sheet as a temporary image
        SheetRender renderer = new SheetRender(sheet, options);
        renderer.ToImage(0, "preview_temp.png");

        // Resize to thumbnail
        using (Bitmap original = new Bitmap("preview_temp.png"))
        {
            Bitmap thumbnail = new Bitmap(original, new Size(160, 120));
            thumbnail.Save("thumbnail.png");
        }

        Console.WriteLine("Thumbnail image created from Excel worksheet.");
    }
}

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

РекомендацииЦель
Use OnePagePerSheet = trueПредотвращение многостраничного разделения в изображении
Низкая резолюцияОптимизация для более быстрой генерации миниатюров
Изображение после рендерацииБольше контроля над скалированием и качеством
 Русский