Cómo convertir un rango de celdas a imagen en C#

Cómo convertir un rango de celdas a imagen en C#

¿Necesita extraer visualmente una porción de una hoja de cálculo? Exportar un rango de celdas a una imagen es útil para generar miniaturas, vistas previas o informes parciales. Esta guía muestra cómo convertir un rango de celdas definido en Excel en una imagen de alta calidad utilizando Aspose.Cells para .NET.

Casos de Uso

  • Exportar tablas de precios o catálogos de productos
  • Compartir parte de una hoja de trabajo sin exponer el archivo completo
  • Capturar rangos dinámicos para paneles de control o widgets

Guía Paso a Paso

Paso 1: Instalar Aspose.Cells

dotnet add package Aspose.Cells

Paso 2: Cargar el Libro de Trabajo y la Hoja de Trabajo

Workbook workbook = new Workbook("DataSet.xlsx");
Worksheet worksheet = workbook.Worksheets[0];

Paso 3: Definir el Rango a Exportar

// Especificar un rango como A1:D10
Range range = worksheet.Cells.CreateRange("A1", "D10");

Paso 4: Configurar Opciones de Renderizado de Imagen

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

Paso 5: Crear un SheetRender y Renderizar el Rango

// Puede usar SheetRender con límites de impresión si es necesario
SheetRender renderer = new SheetRender(worksheet, options);

Paso 6: Exportar el Rango como Imagen

Aspose.Cells no tiene una clase RangeRender directa, pero aún puede recortar una imagen enfocando el renderizado solo en un rango seleccionado:

// Establecer el área de impresión manualmente para la hoja de trabajo
worksheet.PageSetup.PrintArea = "A1:D10";

// Recrear SheetRender con la configuración de impresión ahora aplicada
renderer = new SheetRender(worksheet, options);

// Renderizar y exportar
renderer.ToImage(0, "range_output.png");

Paso 7: Guardar y Verificar la Salida

Ahora tendrá una imagen recortada limpia del rango de Excel seleccionado.


Código de Ejemplo Completo

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // Cargar el libro de trabajo
        Workbook workbook = new Workbook("DataSet.xlsx");

        // Acceder a la primera hoja de trabajo
        Worksheet worksheet = workbook.Worksheets[0];

        // Definir el rango a exportar (A1 a D10)
        Range range = worksheet.Cells.CreateRange("A1", "D10");

        // Establecer el área de impresión a este rango
        worksheet.PageSetup.PrintArea = range.RefersTo;

        // Establecer opciones de exportación de imagen
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 200,
            VerticalResolution = 200,
            OnePagePerSheet = true
        };

        // Renderizar solo el rango especificado
        SheetRender renderer = new SheetRender(worksheet, options);

        // Exportar a imagen
        renderer.ToImage(0, "range_output.png");

        Console.WriteLine("El rango de celdas se exportó correctamente como imagen.");
    }
}

Consejos de Solución de Problemas

ProblemaSolución
La imagen incluye filas/columnas extraAsegúrese de que el área de impresión esté estrictamente definida
El rango no se recorta correctamenteEstablecer OnePagePerSheet = true
Texto borrosoAumentar la configuración de resolución
 Español