Jak przekonwertować cały skoroszyt Excela na obraz w C#

Jak przekonwertować cały skoroszyt Excela na obraz w C#

Renderowanie plików Excel jako obrazów jest istotne przy osadzaniu arkuszy kalkulacyjnych w stronach internetowych, dokumentacji lub raportach. Ten artykuł pokazuje, jak przekonwertować cały skoroszyt Excel na obrazy w wysokiej jakości, używając Aspose.Cells dla .NET.

Dlaczego konwertować skoroszyty na obrazy?

  • Generowanie podglądów dla plików Excel
  • Archiwizowanie arkuszy kalkulacyjnych w formatach obrazów
  • Osadzanie treści arkuszy kalkulacyjnych w raportach lub procesach drukowania
  • Wyświetlanie arkuszy kalkulacyjnych w aplikacjach, które nie obsługują natywnego wyświetlania Excela

Implementacja krok po kroku

Krok 1: Zainstaluj Aspose.Cells dla .NET

Dodaj Aspose.Cells do swojego projektu za pomocą NuGet:

dotnet add package Aspose.Cells

Krok 2: Załaduj plik Excel

Workbook workbook = new Workbook("Book1.xlsx");

Krok 3: Skonfiguruj opcje obrazu

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

Te ustawienia kontrolują format wyjściowy i rozdzielczość. Możesz również skonfigurować:

  • Transparent dla tła
  • OnlyArea aby wykluczyć marginesy
  • PrintingPageType dla zawartości do uwzględnienia

Krok 4: Renderuj skoroszyt

WorkbookRender renderer = new WorkbookRender(workbook, options);

Krok 5: Przekonwertuj każdą stronę na obraz

Przejdź przez strony i eksportuj każdą z nich:

for (int i = 0; i < renderer.PageCount; i++)
{
    string fileName = $"workbook_page_{i + 1}.png";
    renderer.ToImage(i, fileName);
}

To wygeneruje jeden obraz na stronę logiczną na podstawie bieżącego układu druku.

Krok 6: Zapisz obrazy

Powyższy kod już zapisuje każdy plik obrazu na dysku, używając zdefiniowanej nazwy.

// Wyjście:
// workbook_page_1.png
// workbook_page_2.png
// ...

Krok 7: Opcjonalne ulepszenia

Możesz dalej dostosować renderowanie obrazów:

// Przykład: pokaż linie siatki
options.ShowGridLines = true;

// Przykład: renderuj całą zawartość arkusza na jednej stronie
options.AllColumnsInOnePagePerSheet = true;

Najlepsze praktyki

  • Użyj wysokiej rozdzielczości (200+ dpi) dla obrazów w jakości druku.
  • Włącz AllColumnsInOnePagePerSheet dla szerokich arkuszy.
  • Połącz wyjście w PDF lub galerii obrazów do prezentacji.

Częste problemy i rozwiązania

ProblemRozwiązanie
Wyjściowy obraz jest pustyUpewnij się, że skoroszyt jest załadowany i zawiera widoczne dane
Obraz jest obciętyUstaw OnePagePerSheet = true lub dostosuj skalowanie stron
Niska jakość wyjściaZwiększ HorizontalResolution i VerticalResolution
 Polski