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
Issue | Solution |
---|---|
L’immagine include righe/colonne extra | Assicurati che l’area di stampa sia definita in modo rigoroso |
L’intervallo non è ritagliato correttamente | Imposta OnePagePerSheet = true |
Testo sfocato | Aumenta le impostazioni di risoluzione |