Como Converter um Intervalo de Células em Imagem em C#

Como Converter um Intervalo de Células em Imagem em C#

Precisa extrair visualmente uma parte de uma planilha? Exportar um intervalo de células para uma imagem é útil para gerar miniaturas, prévias ou relatórios parciais. Este guia mostra como converter um intervalo de células definido no Excel em uma imagem de alta qualidade usando Aspose.Cells for .NET.

Casos de Uso

  • Exportar tabelas de preços ou catálogos de produtos
  • Compartilhar parte de uma planilha sem expor o arquivo completo
  • Capturar intervalos dinâmicos para painéis ou widgets

Guia Passo a Passo

Passo 1: Instalar Aspose.Cells

dotnet add package Aspose.Cells

Passo 2: Carregar a Pasta de Trabalho e a Planilha

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

Passo 3: Definir o Intervalo a Exportar

// Especifique um intervalo como A1:D10
Range range = worksheet.Cells.CreateRange("A1", "D10");

Passo 4: Configurar Opções de Renderização de Imagem

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

Passo 5: Criar um SheetRender e Renderizar o Intervalo

// Você pode usar SheetRender com limites de impressão, se necessário
SheetRender renderer = new SheetRender(worksheet, options);

Passo 6: Exportar Intervalo como Imagem

Aspose.Cells não possui uma classe RangeRender direta, mas você ainda pode recortar uma imagem focando a renderização apenas em um intervalo selecionado:

// Defina a área de impressão manualmente para a planilha
worksheet.PageSetup.PrintArea = "A1:D10";

// Recrie o SheetRender com as configurações de impressão agora aplicadas
renderer = new SheetRender(worksheet, options);

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

Passo 7: Salvar e Verificar a Saída

Agora você terá uma imagem limpa e recortada do intervalo selecionado no Excel.


Exemplo Completo de Código

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // Carregar a pasta de trabalho
        Workbook workbook = new Workbook("DataSet.xlsx");

        // Acessar a primeira planilha
        Worksheet worksheet = workbook.Worksheets[0];

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

        // Definir a área de impressão para este intervalo
        worksheet.PageSetup.PrintArea = range.RefersTo;

        // Definir opções de exportação de imagem
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 200,
            VerticalResolution = 200,
            OnePagePerSheet = true
        };

        // Renderizar apenas o intervalo especificado
        SheetRender renderer = new SheetRender(worksheet, options);

        // Exportar para imagem
        renderer.ToImage(0, "range_output.png");

        Console.WriteLine("Intervalo de células exportado com sucesso como imagem.");
    }
}

Dicas de Solução de Problemas

ProblemaSolução
A imagem inclui linhas/colunas extrasCertifique-se de que a área de impressão está estritamente definida
Intervalo não recortado corretamenteDefina OnePagePerSheet = true
Texto borradoAumente as configurações de resolução
 Português