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

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

Exportar uma faixa de células para uma imagem é útil para gerar detalhes, antevisões ou relatórios parciais. Este guia mostra como converter uma faixa de células definida no Excel em uma imagem de alta qualidade usando Aspose.Cells para .NET.

Casos de Uso

  • Tabelas de preços de exportação ou catálogos de produtos
  • Compartilhe uma parte de uma folha de trabalho sem expor o arquivo completo
  • Capturar rangos dinâmicos para dashboards ou widgets

Guia passo a passo

Passo 1: Instalar Aspose.Cells

dotnet add package Aspose.Cells

Passo 2: Carregar o livro de trabalho e folheto de trabalho

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

Passo 3: Defina o âmbito de exportação

// Specify a range like A1:D10
Range range = worksheet.Cells.CreateRange("A1", "D10");

Passo 4: Configure opções de renderização de imagem

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

Passo 5: Crie um SheetRender e Render o Range

// You can use SheetRender with printing bounds if needed
SheetRender renderer = new SheetRender(worksheet, options);

Passo 6: Range de Exportação como imagem

Aspose.Cells não tem uma classe RangeRender direta, mas você ainda pode clipar uma imagem concentrando a renderização em apenas uma faixa selecionada:

// Set print area manually for the worksheet
worksheet.PageSetup.PrintArea = "A1:D10";

// Recreate SheetRender with print settings now applied
renderer = new SheetRender(worksheet, options);

// Render and export
renderer.ToImage(0, "range_output.png");

Passo 7: Salve e Verifique a saída

Agora, você terá uma imagem limpa cozida da gama do Excel selecionada.

Código de Exemplo Completo

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // Load the workbook
        Workbook workbook = new Workbook("DataSet.xlsx");

        // Access the first worksheet
        Worksheet worksheet = workbook.Worksheets[0];

        // Define range to export (A1 to D10)
        Range range = worksheet.Cells.CreateRange("A1", "D10");

        // Set the print area to this range
        worksheet.PageSetup.PrintArea = range.RefersTo;

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

        // Render only the specified range
        SheetRender renderer = new SheetRender(worksheet, options);

        // Export to image
        renderer.ToImage(0, "range_output.png");

        Console.WriteLine("Cell range exported successfully as image.");
    }
}

Tipos de solução de problemas

QuestãoSolução
Imagem inclui linhas / colunas adicionaisCertifique-se de que a área de impressão é estritamente definida
Rango não corrigido adequadamenteSet OnePagePerSheet = true
Título BlurryAumentar a resolução
 Português