Jak przekonwertować arkusz kalkulacyjny na obraz w C#

Jak przekonwertować arkusz kalkulacyjny na obraz w C#

Eksportowanie pojedynczego arkusza Excel do formatu graficznego (np. PNG, JPEG) jest przydatne przy generowaniu podglądów, eksportowaniu wykresów lub udostępnianiu wizualnych reprezentacji zawartości arkusza w trybie tylko do odczytu. Ten przewodnik pokazuje, jak przekonwertować jeden arkusz z książki roboczej Excel na obraz za pomocą Aspose.Cells dla .NET.

Przykłady użycia

  • Generowanie podglądu konkretnego arkusza
  • Eksportowanie sformatowanych raportów do e-maila lub dokumentacji
  • Osadzanie pojedynczego arkusza w stronie internetowej lub PDF

Przewodnik krok po kroku

Krok 1: Zainstaluj Aspose.Cells dla .NET

dotnet add package Aspose.Cells

Krok 2: Załaduj plik Excel

Workbook workbook = new Workbook("SalesData.xlsx");
Worksheet sheet = workbook.Worksheets["Q1 Report"]; // Uzyskaj dostęp do konkretnego arkusza

Krok 3: Zdefiniuj opcje renderowania obrazu

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

Krok 4: Utwórz obiekt SheetRender

SheetRender renderer = new SheetRender(sheet, options);

Krok 5: Renderuj każdą stronę do obrazu

for (int pageIndex = 0; pageIndex < renderer.PageCount; pageIndex++)
{
    string imageName = $"worksheet_q1_page_{pageIndex + 1}.png";
    renderer.ToImage(pageIndex, imageName);
}

Krok 6: Zapisz obrazy

Ten kod automatycznie zapisuje jeden obraz na każdą stronę do wydruku w arkuszu.

Krok 7: Opcjonalne ulepszenia

Możesz zastosować dodatkowe ustawienia układu:

// Pokaż linie siatki w obrazie wyjściowym
options.ShowGridLines = true;

// Dopasuj całą zawartość na jednej stronie
options.AllColumnsInOnePagePerSheet = true;

Pełny kod przykładowy

using System;
using Aspose.Cells;

class Program
{
    static void Main()
    {
        // Załaduj książkę roboczą Excel
        Workbook workbook = new Workbook("SalesData.xlsx");

        // Uzyskaj dostęp do konkretnego arkusza
        Worksheet sheet = workbook.Worksheets["Q1 Report"];

        // Zdefiniuj opcje renderowania obrazu
        ImageOrPrintOptions options = new ImageOrPrintOptions
        {
            ImageType = ImageType.Png,
            OnePagePerSheet = true,
            HorizontalResolution = 200,
            VerticalResolution = 200,
            PrintingPageType = PrintingPageType.Default
        };

        // Włącz linie siatki, jeśli to konieczne
        options.ShowGridLines = true;

        // Renderuj arkusz do obrazu(ów)
        SheetRender renderer = new SheetRender(sheet, options);

        for (int pageIndex = 0; pageIndex < renderer.PageCount; pageIndex++)
        {
            string imageName = $"worksheet_q1_page_{pageIndex + 1}.png";
            renderer.ToImage(pageIndex, imageName);
            Console.WriteLine($"Zapisano: {imageName}");
        }

        Console.WriteLine("Arkusz pomyślnie renderowany do obrazu(ów).");
    }
}

Częste scenariusze i rozwiązywanie problemów

ProblemRozwiązanie
Ucięta zawartośćUżyj AllColumnsInOnePagePerSheet = true
Niska jakość wyjściaZwiększ rozdzielczość obrazu
Brak linii siatkiUstaw ShowGridLines = true
 Polski