Cómo convertir Excel a imagen en miniatura en C#

Cómo convertir Excel a imagen en miniatura en C#

Cuando trabajas con características de vista previa de documentos o bibliotecas de contenido, las imágenes en miniatura proporcionan una referencia visual rápida sin cargar el archivo completo. Este tutorial demuestra cómo crear imágenes en miniatura a partir de archivos de Excel utilizando Aspose.Cells para .NET.

¿Por qué usar miniaturas?

  • Crear tarjetas de vista previa para galerías de documentos
  • Construir tableros visuales de informes de hojas de cálculo
  • Agregar visuales ligeros a herramientas de búsqueda o gestión de archivos

Guía Paso a Paso

Paso 1: Instalar Aspose.Cells

dotnet add package Aspose.Cells

Paso 2: Cargar el Libro de Trabajo

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

Paso 3: Configurar Opciones de Renderizado de Miniaturas

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

Paso 4: Renderizar la Primera Hoja de Cálculo a una Imagen

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

Paso 5: Redimensionar la Imagen a Dimensiones de Miniatura (Opcional)

Puedes usar una biblioteca gráfica (por ejemplo, System.Drawing) para redimensionar la imagen:

using System.Drawing;

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

Paso 6: Usar la Imagen en Miniatura

Ahora tienes una miniatura ligera adecuada para vistas previas.


Código de Ejemplo Completo

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

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

        // Configurar opciones de baja resolución
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 96,
            VerticalResolution = 96,
            OnePagePerSheet = true
        };

        // Renderizar toda la hoja como una imagen temporal
        SheetRender renderer = new SheetRender(sheet, options);
        renderer.ToImage(0, "preview_temp.png");

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

        Console.WriteLine("Imagen en miniatura creada a partir de la hoja de cálculo de Excel.");
    }
}

Mejores Prácticas

RecomendaciónPropósito
Usar OnePagePerSheet = truePrevenir la división de múltiples páginas en la imagen
Resolución más bajaOptimiza para una generación de miniaturas más rápida
Redimensionar imagen después de renderizarMás control sobre la escala y calidad
 Español