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
Problema | Solução |
---|---|
A imagem inclui linhas/colunas extras | Certifique-se de que a área de impressão está estritamente definida |
Intervalo não recortado corretamente | Defina OnePagePerSheet = true |
Texto borrado | Aumente as configurações de resolução |