Come convertire un intervallo di celle in un'immagine in C#

Come convertire un intervallo di celle in un'immagine in C#

Need to visually extract a portion of a spreadsheet? Esportare un intervallo di celle in un’immagine è utile per generare miniature, anteprime o report parziali. Questa guida mostra come convertire un intervallo di celle definito in Excel in un’immagine di alta qualità utilizzando Aspose.Cells per .NET.

Use Cases

  • Esportare tabelle prezzi o cataloghi di prodotti
  • Condividere parte di un foglio di lavoro senza esporre l’intero file
  • Catturare intervalli dinamici per dashboard o widget

Step-by-Step Guide

Step 1: Install Aspose.Cells

dotnet add package Aspose.Cells

Step 2: Load the Workbook and Worksheet

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

Step 3: Define the Range to Export

// Specifica un intervallo come A1:D10
Range range = worksheet.Cells.CreateRange("A1", "D10");

Step 4: Configure Image Rendering Options

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

Step 5: Create a SheetRender and Render the Range

// Puoi usare SheetRender con limiti di stampa se necessario
SheetRender renderer = new SheetRender(worksheet, options);

Step 6: Export Range as Image

Aspose.Cells non ha una classe RangeRender diretta, ma puoi comunque ritagliare un’immagine concentrando il rendering su un intervallo selezionato:

// Imposta manualmente l'area di stampa per il foglio di lavoro
worksheet.PageSetup.PrintArea = "A1:D10";

// Ricrea SheetRender con le impostazioni di stampa ora applicate
renderer = new SheetRender(worksheet, options);

// Renderizza ed esporta
renderer.ToImage(0, "range_output.png");

Step 7: Save and Verify Output

Ora avrai un’immagine pulita e ritagliata dell’intervallo Excel selezionato.


Complete Example Code

using System;
using Aspose.Cells;

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

        // Accedi al primo foglio di lavoro
        Worksheet worksheet = workbook.Worksheets[0];

        // Definisci l'intervallo da esportare (A1 a D10)
        Range range = worksheet.Cells.CreateRange("A1", "D10");

        // Imposta l'area di stampa su questo intervallo
        worksheet.PageSetup.PrintArea = range.RefersTo;

        // Imposta le opzioni di esportazione immagine
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            HorizontalResolution = 200,
            VerticalResolution = 200,
            OnePagePerSheet = true
        };

        // Renderizza solo l'intervallo specificato
        SheetRender renderer = new SheetRender(worksheet, options);

        // Esporta in immagine
        renderer.ToImage(0, "range_output.png");

        Console.WriteLine("Intervallo di celle esportato con successo come immagine.");
    }
}

Troubleshooting Tips

IssueSolution
L’immagine include righe/colonne extraAssicurati che l’area di stampa sia definita in modo rigoroso
L’intervallo non è ritagliato correttamenteImposta OnePagePerSheet = true
Testo sfocatoAumenta le impostazioni di risoluzione
 Italiano