Aspose.Cells Bildkonverter für .NET

Aspose.Cells Image Converter for .NET is a lightweight, high-performance API designed specifically to transform Microsoft Excel spreadsheets (XLS, XLSX, XLTM, XLSM) into a variety of image formats—including TIFF, JPEG, PNG, BMP, EMF, and GIF—while preserving layout, formatting, charts, and embedded objects. Leveraging the proven rendering engine of Aspose.Cells, this plugin offers fine-grained control over export options, streaming support for large workbooks, and metered licensing to track usage in production environments.

Installation und Setup

Fügen Sie die Aspose.Cells Image Converter‑Assembly zu Ihrem .NET Projekt über NuGet hinzu oder verweisen Sie direkt auf die DLL. Für eine schrittweise Anleitung siehe Installation .

Bevor Sie Bilder rendern, initialisieren Sie die nutzungsbasierte Lizenzierung wie beschrieben in Nutzungsbasierte Lizenzierung .

Wesentliche Funktionen und Merkmale

Arbeitsblatt‑zu‑Bild‑Konvertierung

• Rendern Sie einzelne Arbeitsblätter zu eigenständigen Bildern mit Kontrolle über Seitenumbrüche, Skalierung und Transparenz. • Beachtet Excel‑Druckbereiche, Kopf‑/Fußzeilen und Ränder und gewährleistet die Treue zur Druckvorschau.

Arbeitsmappe‑zu‑Mehrseiten‑TIFF

• Exportieren Sie gesamte mehrblättrige Arbeitsmappen in einen einzigen, mehrseitigen TIFF Container. • Jede Tabelle wird als ein TIFF‑Frame für Archivierung oder Stapelverarbeitung gerendert.

Umfassende Bildformatunterstützung

• Unterstützt TIFF, JPEG, PNG, BMP, EMF und GIF. • Steuerung von Kompression (LZW, CCITT), Interlacing, Transparenz und Paletten für verschiedene Formate.

Dynamische Dateibenennung mit Platzhaltern

Benutzerdefinierte Ausgabemuster: Generieren Sie mehrere Bilder mit intelligenten Benennungskonventionen unter Verwendung von Platzhaltern. • Blattindex-Steuerung: Passen Sie die Blattnummerierung mit Präfixen und Offset-Werten an. • Teil-Indexierung: Große Arbeitsblätter verarbeiten, die über mehrere Bilddateien mit fortlaufender Benennung aufgeteilt sind. • Automatische Dateiorganisation: Ausgabedateien systematisch benennen basierend auf Blatt- und Seitenpositionen.

Renderoptionen und Anpassungen

• Feinabstimmung von DPI, Auflösung und Farbtiefe. • Konfigurieren Sie Antialiasing, Gitterlinienanzeige und Hintergrundfüllungen. • Wenden Sie Licht‑/Dunkelmodus oder benutzerdefinierte Hintergründe für Overlays und Wasserzeichen an.

Diagramm‑ und Formrendering

• Konvertiert Diagramme, SmartArt, OLE‑Objekte und Formen mit hoher Treue. • Behält Themen, Formatierungen, Achsen und Datenbeschriftungen für eine genaue Diagrammdarstellung bei.

Seitennummerierung, Skalierung und Druckeinstellungen

• Beachtet die Excel‑Seitennummerierung für Berichte. • Skalieren, um Breite/Höhe oder bestimmte Seitenzahlen anzupassen. • Kopf‑ und Fußzeilen sowie Seitenzahlen bleiben erhalten.

Streaming und Speicherverwaltung

• Unterstützt chunkbasiertes Rendering und streambasierte Ausgabe für sehr große Arbeitsmappen. • Minimiert den Speicherverbrauch und vermeidet Out-of-Memory-Probleme.

Hochpräzise Text- und Schriftart-Einbettung

• Bewahrt Schriftarten, Ausrichtung und Textfluss mit eingebetteten oder ersetzten Schriftarten. • Unterstützt RTL, Kursivschrift und asiatische Schriften für globale Kompatibilität.

Thread-Sicherheit und Parallelität

• Mehrere Instanzen können parallel in Hochdurchsatz-Umgebungen ausgeführt werden. • Thread-sicheres Design, ideal für serverseitiges Rendering.

Fehlerbehandlung und Diagnose

• Detaillierte Fehlermeldungen für nicht unterstützte Funktionen oder beschädigte Dateien. • Protokolliert Warnungen bei fehlenden Schriftarten oder Rendering-Unterschieden.


Verwendung von Beispielen

Grundlegende Konvertierung: Excel zu Bild

Der einfachste Weg, eine Excel-Datei mit einer einzigen Codezeile in ein Bild zu konvertieren:

using Aspose.Cells.LowCode;
using Aspose.Cells;

string src = "CellsJava46030_2.xlsx";
ImageConverter.Process(src, "PluginImage.png");

Dies konvertiert das erste Arbeitsblatt in ein PNG-Bild mit den Standardeinstellungen.

Erweiterte Konvertierung mit benutzerdefinierten Optionen

Konfigurieren Sie detaillierte Konvertierungsoptionen für eine präzise Kontrolle über die Bildausgabe:

using Aspose.Cells.LowCode;
using Aspose.Cells;
using System.IO;
using Aspose.Cells.Drawing;
using Aspose.Cells.Rendering;

string src = "CellsJava46030_2.xlsx";

// Configure load options
LowCodeLoadOptions lclopts = new LowCodeLoadOptions();
lclopts.InputFile = src;

// Configure image save options
LowCodeImageSaveOptions lcsopts = new LowCodeImageSaveOptions();
ImageOrPrintOptions imgOpts = new ImageOrPrintOptions();
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Png;

lcsopts.ImageOptions = imgOpts;

// Set up custom file naming with placeholders
LowCodeSaveOptionsProviderOfPlaceHolders p = new LowCodeSaveOptionsProviderOfPlaceHolders(
    "result\\PluginImage${SheetIndexPrefix}${SheetIndex}_${SplitPartIndex}.png");
p.SheetIndexOffset = 1;        // Start sheet numbering from 1 instead of 0
p.SheetIndexPrefix = "S";      // Add \"S\" prefix to sheet numbers
p.SplitPartIndexOffset = 1;    // Start split part numbering from 1

// Ensure output directory exists
Directory.CreateDirectory("result");

// Perform conversion
ImageConverter.Process(lclopts, lcsopts, p);

// Verify output
Console.WriteLine(File.Exists("result\\PluginImageS2_2.png") 
    ? "Expected image file has been generated" 
    : "Cannot find the expected image file");

Funktionsübersicht: Dynamische Dateibenennung

Verwenden Sie platzhalterbasierte Benennung, um Ausgabebilder aus mehrseitigen Arbeitsmappen automatisch zu organisieren:

LowCodeSaveOptionsProviderOfPlaceHolders p = new LowCodeSaveOptionsProviderOfPlaceHolders(
    "output\\Report${SheetIndexPrefix}${SheetIndex}_Page${SplitPartIndex}.png");
    
p.SheetIndexOffset = 1;        // Sheets numbered from 1
p.SheetIndexPrefix = "Sheet";  // Output: "ReportSheet1_Page1.png"
p.SplitPartIndexOffset = 1;    // Pages numbered from 1

Verfügbare Platzhalter:

  • ${SheetIndex}: Der Arbeitsblatt-Index (standardmäßig 0-basiert, anpassbar mit Offset)
  • ${SheetIndexPrefix}: Benutzerdefiniertes Präfix für Blattnummern (z. B. “S”, “Sheet”, “Tab”)
  • ${SplitPartIndex}: Seiten-/Teilindex für große Arbeitsblätter (standardmäßig 0-basiert, anpassbar mit Offset)

Ausgabe‑Beispiele:

  • Mit Präfix “S” und Offset 1: PluginImageS1_1.png, PluginImageS2_1.png, PluginImageS2_2.png
  • Mit Präfix “Sheet” und Versatz 1: ReportSheet1_Page1.png, ReportSheet2_Page1.png
  • Kein Präfix, nullbasiert: Output0_0.png, Output1_0.png

Use Cases:

  • Automatisierte Stapelverarbeitung mit organisierter Ausgabe
  • Mehrseitige Berichte mit fortlaufender Benennung
  • Große Arbeitsblätter, auf mehrere Bilddateien aufgeteilt
  • Archivsysteme, die strukturierte Dateibenennung erfordern
  • Webgalerien mit vorhersehbaren Bild-URLs

Funktionsübersicht: Bildformatauswahl

Geben Sie das gewünschte Ausgabeformat für Ihre Bilder an:

ImageOrPrintOptions imgOpts = new ImageOrPrintOptions();

// PNG format (lossless, supports transparency)
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Png;

// JPEG format (compressed, smaller file size)
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Jpeg;

// TIFF format (multi-page, archival quality)
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Tiff;

// BMP format (uncompressed)
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Bmp;

// EMF format (vector, scalable)
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Emf;

// GIF format (animation support)
imgOpts.ImageType = Aspose.Cells.Drawing.ImageType.Gif;

Funktionsübersicht: Anpassung des Blattindexes

Steuern Sie, wie Blätter in Ausgabedateien nummeriert werden:

// Zero-based indexing (default)
p.SheetIndexOffset = 0;  // Sheets: 0, 1, 2, 3...

// One-based indexing (user-friendly)
p.SheetIndexOffset = 1;  // Sheets: 1, 2, 3, 4...

// Custom starting point
p.SheetIndexOffset = 100;  // Sheets: 100, 101, 102...

// Add descriptive prefixes
p.SheetIndexPrefix = "Q1_";  // Output: PluginImageQ1_1_1.png
p.SheetIndexPrefix = "Report";  // Output: PluginImageReport1_1.png

Funktionsübersicht: Anpassung des Indexes für geteilte Teile

Verarbeiten Sie große Arbeitsblätter, die in mehrere Seiten aufgeteilt werden:

// One-based page numbering
p.SplitPartIndexOffset = 1;  // Pages: 1, 2, 3, 4...

// Zero-based page numbering
p.SplitPartIndexOffset = 0;  // Pages: 0, 1, 2, 3...

// Custom starting page number
p.SplitPartIndexOffset = 10;  // Pages: 10, 11, 12...

Traditionelle API: Feinkörnige Steuerung

Für maximale Kontrolle über die Rendering-Optionen verwenden Sie die traditionelle SheetRender-API:

using Aspose.Cells;
using Aspose.Cells.Rendering;
using Aspose.Cells.Drawing;

Workbook book = new Workbook("Workbook.xlsx");
Worksheet sheet = book.Worksheets[0];

ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
imgOptions.ImageType = ImageType.Png;
imgOptions.HorizontalResolution = 300;
imgOptions.VerticalResolution = 300;
imgOptions.OnlyArea = false;

SheetRender sr = new SheetRender(sheet, imgOptions);

int pageCount = sr.PageCount;
for (int idxPage = 0; idxPage < pageCount; idxPage++)
{
    sr.ToImage(idxPage, "out_" + (idxPage + 1) + ".png");
}

Tipps und bewährte Verfahren

Leistungsoptimierung

LowCode API verwenden: Nutzen ImageConverter.Process() für einfachere, schnellere Konvertierungen. • Caching: Zwischenspeichern Sie häufig verwendete Vorlagen für wiederholte Konvertierungen. • Streaming-Modus: Verwenden Sie Streaming für hochauflösende Konvertierungen großer Arbeitsmappen. • Richtig freigeben: Geben Sie Arbeitsmappen- und Stream-Objekte umgehend frei, um Speicher zu sparen.

Dateiorganisation

Platzhalterbenennung: Verwenden LowCodeSaveOptionsProviderOfPlaceHolders für systematische Dateiorganisation. • Konsistente Präfixe: Wenden Sie sinnvolle Präfixe an (z. B. “Invoice”, “Report”) zur einfachen Identifizierung. • Offset-Verwaltung: Verwenden Sie 1-basierte Indizierung (SheetIndexOffset = 1) für benutzerfreundliche Dateinamen.

Qualitätskontrolle

Formatauswahl: Wählen Sie PNG für Transparenz, JPEG für kleinere Dateien, TIFF für Archivierung. • Auflösungseinstellungen: Setzen Sie geeignete DPI‑Werte in ImageOrPrintOptions für Druck‑ vs. Web‑Verwendung. • Schriftüberprüfung: Überprüfen Sie die Verfügbarkeit von Schriftarten, um stille Ersetzungen zu vermeiden. • Ausgabevalidierung: Überprüfen Sie immer die Existenz der Datei nach der Konvertierung mit File.Exists().

Produktionsbereitstellung

Einmal initialisieren: Lizenzierung einmal beim Start initialisieren, um wiederholte Prüfungen zu vermeiden. • Druckbereiche definieren: Druckbereiche und Seiteneinrichtung in Excel-Vorlagen für Konsistenz festlegen. • Gepoolte Instanzen: Verwenden Sie gepoolte Instanzen für serverseitiges Rendering, um den Aufwand zu reduzieren. • Fehlerprotokollierung: Implementieren Sie umfassende Fehlerbehandlung und Protokollierung für die Diagnose.


Häufige Probleme und Lösungen

ProblemLösung
Datei nicht gefundenÜberprüfen Sie, ob der Eingabedateipfad korrekt und zugänglich ist
Nicht unterstütztes DateiformatStellen Sie sicher, dass das Dateiformat vom Konverter unterstützt wird
Erwartetes Bild wurde nicht erzeugtÜberprüfen Sie die Platzhaltersyntax und stellen Sie sicher, dass das Ausgabeverzeichnis existiert
Falsche DateinamenÜberprüfen SheetIndexOffset und SheetIndexPrefix Einstellungen
Fehlende SeitenÜberprüfen SplitPartIndexOffset und stelle sicher, dass alle Seiten gerendert werden
Niedrige BildqualitätErhöhe DPI/Auflösung in ImageOrPrintOptions
Schriften sehen anders ausInstalliere die erforderlichen Schriften auf dem Server oder konfiguriere die Schriftart-Substitution

Häufig gestellte Fragen

Was ist Aspose.Cells Image Converter für .NET? Ein fokussiertes Werkzeug, um Excel-Tabellen programmgesteuert in Bilder innerhalb von .NET-Anwendungen zu konvertieren.

Wie unterscheidet es sich von Aspose.Cells für .NET? Aspose.Cells for .NET is a full-featured API, while the Image Converter plugin is tailored for fast and accurate image conversion with streamlined APIs.

Welche Dateiformate werden unterstützt? Unterstützt XLS, XLSX, XLSM, XLTX, XLTM, XLSB, CSV, TSV, HTML, ODS und mehr.

Kann ich die Bildgenerierung anpassen? Ja, mit dem ImageOrPrintOptions Klasse, um den Ausgabetyp, die Auflösung, die Kompression und mehr zu definieren.

Wie konvertiere ich mehrere Tabellenblätter in separate Bilder? Verwenden Sie LowCodeSaveOptionsProviderOfPlaceHolders mit Platzhaltermustern, um automatisch eindeutige Dateinamen für jedes Blatt zu erzeugen.

Was bedeuten die Platzhalter?

  • ${SheetIndex}: Aktuelle Arbeitsblattnummer
  • ${SheetIndexPrefix}: Benutzerdefiniertes Präfix für Blätter (z. B. “S”, “Sheet”)
  • ${SplitPartIndex}: Seitennummer für große Arbeitsblätter, die über mehrere Bilder verteilt sind

Kann ich die Blattnummerierung bei 1 anstelle von 0 beginnen? Ja, setzen SheetIndexOffset = 1 um eine einsbasierte Indizierung zu verwenden.


API-Referenzübersicht

Wichtige Klassen

  • ImageConverter: Statische Klasse, die vereinfachte Konvertierungsmethoden bereitstellt
  • LowCodeLoadOptions: Konfiguration zum Laden von Excel-Dateien
  • LowCodeImageSaveOptions: Konfiguration für die Bildausgabe
  • ImageOrPrintOptions: Detaillierte Einstellungen für die Bilddarstellung
  • LowCodeSaveOptionsProviderOfPlaceHolders: Dynamische Dateibenennung mit Platzhaltern

Wesentliche Eigenschaften

  • InputFile: Quell-Excel-Dateipfad
  • ImageOptions: Bild-spezifische Rendering-Optionen
  • ImageType: Ausgabeformat (PNG, JPEG, TIFF, BMP, EMF, GIF)
  • SheetIndexOffset: Startnummer für Blatt-Indexierung
  • SheetIndexPrefix: Präfixzeichenfolge für Blattnummern
  • SplitPartIndexOffset: Startnummer für Seiten-/Split-Indexierung

Platzhalter-Token

  • ${SheetIndex}: Arbeitsblatt-Index (mit angewendetem Offset)
  • ${SheetIndexPrefix}: Benutzerdefiniertes Blattpräfix
  • ${SplitPartIndex}: Seiten-/Split-Index (mit angewendetem Offset)
 Deutsch