Die Umwandlung von Klartextdaten in eine strukturierte Excel‑Arbeitsmappe ist eine häufige Aufgabe für Java‑Entwickler, die Informationen analysieren oder teilen müssen. Conholdate.Total for Java ist ein leistungsstarkes SDK, das die Konvertierung von TXT zu XLSX im Java‑Workflow auf jedem Server‑ oder Desktop‑Umfeld vereinfacht. In diesem Leitfaden erfahren Sie, wie Sie die Bibliothek einrichten, jeden Codierungsschritt durchgehen, Konvertierungsoptionen erkunden und Leistungstipps anwenden, um große Dateien effizient zu verarbeiten.

Bevor Sie beginnen: Voraussetzungen und Installation

Um diesem Tutorial zu folgen, benötigen Sie:

  • Java Development Kit 8 oder höher
  • Eine IDE wie IntelliJ IDEA oder Eclipse
  • Maven für das Abhängigkeitsmanagement
  • Zugriff auf das Internet, um die SDK-Artefakte herunterzuladen

Fügen Sie das Conholdate Maven-Repository und die SDK-Abhängigkeit zu Ihrer pom.xml hinzu:

<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

Laden Sie das neueste SDK‑Paket von der offiziellen Seite herunter: Herunterladen Conholdate.Total für Java. Nachdem die Abhängigkeit aufgelöst wurde, können Sie mit dem Codieren beginnen. Der nächste Abschnitt führt die Implementierung Schritt für Schritt durch.

Schritt für Schritt: TXT in XLSX in Java konvertieren

Schritt 1: Eingabedatei überprüfen

Stellen Sie zunächst sicher, dass die Quell‑TXT‑Datei vorhanden ist. Der Code prüft den Dateipfad und bricht ab, wenn die Datei nicht gefunden werden kann.

String inputPath = "sample.txt";
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
    System.err.println("Input file not found: " + inputPath);
    return;
}

Schritt 2: Konvertierungsoptionen festlegen

Konfigurieren Sie, wie das SDK die TXT-Daten interpretieren soll. Sie können das Trennzeichen (Tab, Komma, Semikolon usw.) festlegen, die ursprüngliche Formatierung beibehalten und das Zwischenspeichern im Speicher für große Dateien aktivieren.

XlsxConvertOptions options = new XlsxConvertOptions();
options.setDelimiter('\t');               // Tab‑delimited example
options.setPreserveOriginalFormatting(true);
options.setEnableMemoryCache(true);

Weitere Details finden Sie in der XlsxConvertOptions API-Referenz.

Schritt 3: Konvertierung ausführen

Erstellen Sie eine Conversion‑Instanz mit der Eingabedatei und rufen Sie convert auf, um die XLSX‑Ausgabe zu erzeugen.

String outputPath = "sample.xlsx";
try (Conversion conversion = new Conversion(inputFile)) {
    conversion.convert(outputPath, options);
} catch (ConversionException | IOException e) {
    System.err.println("Conversion failed: " + e.getMessage());
    e.printStackTrace();
    return;
}

Die Conversion-Klasse übernimmt die schwere Arbeit im Hintergrund und wandelt jede Zeile der TXT-Datei in Zeilen und Spalten der Tabelle um.

Schritt 4: Ausgabedatei prüfen und Ergebnis protokollieren

Überprüfen Sie nach der Konvertierung, ob die XLSX‑Datei erstellt wurde und nicht leer ist.

File outputFile = new File(outputPath);
if (outputFile.exists() && outputFile.isFile() && outputFile.length() > 0) {
    System.out.println("Conversion succeeded. Output file: " + outputPath);
} else {
    System.err.println("Conversion completed but output file is missing or empty.");
}

Schritt 5: Schnelle Validierung mit Apache POI

Optional können Sie Apache POI verwenden, um die generierte Arbeitsmappe zu lesen und die Anzahl der Blätter und Zeilen zu bestätigen.

try (XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(Paths.get(outputPath)))) {
    int sheetCount = workbook.getNumberOfSheets();
    System.out.println("Workbook contains " + sheetCount + " sheet(s).");
    if (sheetCount > 0) {
        Sheet sheet = workbook.getSheetAt(0);
        int rowCount = sheet.getPhysicalNumberOfRows();
        System.out.println("First sheet row count: " + rowCount);
    }
} catch (IOException ex) {
    System.err.println("Failed to read generated XLSX for validation: " + ex.getMessage());
}

Nachdem die Konvertierung abgeschlossen ist, können Sie nun zusätzliche Konfigurationsoptionen erkunden oder den Vorgang skalieren, um viele Dateien stapelweise zu konvertieren.

Vollständiges funktionierendes Beispiel für die Konvertierung von TXT zu XLSX in Java

Der folgende Code demonstriert die vollständige Implementierung des Workflows zum Konvertieren von TXT nach XLSX in Java mit Conholdate.Total for Java.

import com.groupdocs.conversion.Conversion;
import com.groupdocs.conversion.options.convert.XlsxConvertOptions;
import com.groupdocs.conversion.exceptions.ConversionException;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class TxtToXlsxConverter {
    public static void main(String[] args) {
        // Input TXT file and desired XLSX output paths
        String inputPath = "sample.txt";
        String outputPath = "sample.xlsx";

// Verify that the input file exists
        File inputFile = new File(inputPath);
        if (!inputFile.exists() || !inputFile.isFile()) {
            System.err.println("Input file not found: " + inputPath);
            return;
        }

// Configure conversion options
        XxlsxConvertOptions options = new XlsxConvertOptions();
        // Set delimiter (tab, comma, semicolon, etc.). Here we use tab.
        options.setDelimiter('\t');
        // Preserve original formatting where possible
        options.setPreserveOriginalFormatting(true);
        // Enable memory cache to improve performance on large files
        options.setEnableMemoryCache(true);

// Perform the conversion
        try (Conversion conversion = new Conversion(inputFile)) {
            conversion.convert(outputPath, options);
        } catch (ConversionException | IOException e) {
            System.err.println("Conversion failed: " + e.getMessage());
            e.printStackTrace();
            return;
        }

// Validate that the XLSX file was created and is not empty
        File outputFile = new File(outputPath);
        if (outputFile.exists() && outputFile.isFile() && outputFile.length() > 0) {
            System.out.println("Conversion succeeded. Output file: " + outputPath);

// Optional quick validation using Apache POI
            try (XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(Paths.get(outputPath)))) {
                int sheetCount = workbook.getNumberOfSheets();
                System.out.println("Workbook contains " + sheetCount + " sheet(s).");
                if (sheetCount > 0) {
                    Sheet sheet = workbook.getSheetAt(0);
                    int rowCount = sheet.getPhysicalNumberOfRows();
                    System.out.println("First sheet row count: " + rowCount);
                }
            } catch (IOException ex) {
                System.err.println("Failed to read generated XLSX for validation: " + ex.getMessage());
            }
        } else {
            System.err.println("Conversion completed but output file is missing or empty.");
        }
    }
}

Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie alle Dateipfade und Konfigurationswerte an Ihre tatsächliche Umgebung anpassen, überprüfen Sie, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind, und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.

Konfigurieren von Konvertierungsoptionen

Das SDK bietet mehrere Optionen, mit denen Sie den Konvertierungsprozess feinabstimmen können:

  • Delimiter – Bestimmt, wie das SDK jede Zeile der TXT‑Datei in Spalten aufteilt. Das Beispiel verwendet ein Tabulatorzeichen ('\t'). Sie können es in ein Komma (',') oder ein anderes Zeichen ändern, das zu Ihren Quelldaten passt.
  • PreserveOriginalFormatting – Wenn auf true gesetzt, versucht das SDK, die ursprüngliche Textformatierung (wie Fett oder Kursiv) in den resultierenden XLSX‑Zellen beizubehalten.
  • EnableMemoryCache – Das Aktivieren dieses Flags verbessert die Leistung bei großen Dateien, indem Zwischendaten im Speicher zwischengespeichert werden.

Diese Optionen werden über das XlsxConvertOptions‑Objekt konfiguriert, wie im obigen Schritt‑für‑Schritt‑Abschnitt gezeigt.

Optimierung der Konvertierungsleistung

Beim Konvertieren großer TXT‑Dateien sollten Sie die folgenden Tipps beachten:

  1. Enable Memory Cache - options.setEnableMemoryCache(true); reduziert Festplatten‑I/O und beschleunigt die Verarbeitung.
  2. Stream the Input - Das SDK liest die Quelldatei in Streaming‑Form, aber vermeiden Sie das Laden der gesamten Datei in einen String vor der Konvertierung.
  3. Reuse Conversion Instances - Wenn Sie viele Dateien konvertieren müssen, erstellen Sie ein einzelnes Conversion‑Objekt pro Thread und verwenden Sie es für jede Datei erneut, um den Overhead bei der Objekterstellung zu minimieren.
  4. Adjust JVM Heap - Für sehr große Datensätze erhöhen Sie die JVM‑Heap‑Größe (-Xmx2g oder höher), um OutOfMemoryError zu verhindern.

Durch die Anwendung dieser Praktiken wird sichergestellt, dass die Konvertierung von TXT zu XLSX in Java schnell und speichereffizient bleibt, selbst bei Quelldateien von Gigabyte‑Größe.

Zusammenfassung

Sie haben nun gesehen, wie Sie TXT nach XLSX in Java mit Conholdate.Total for Java konvertieren können. Das SDK übernimmt die Trennzeichenanalyse, die Erhaltung der Formatierung und das Speicher‑Management, sodass Sie professionelle Excel‑Arbeitsmappen erstellen können, ohne Microsoft Office zu benötigen. Für den Produktionseinsatz denken Sie daran, eine gültige Lizenz zu erwerben; die Preisdetails können Sie auf der Preisübersicht einsehen und eine temporäre Lizenz für Tests auf der temporären Lizenzseite erhalten. Mit dem Code und den Tipps in diesem Leitfaden können Sie die TXT‑zu‑XLSX‑Konvertierung in jede Java‑Anwendung integrieren, die Stapelverarbeitung automatisieren und Daten in einem Format bereitstellen, das Endbenutzer leicht bearbeiten können.

FAQs

Wie konvertiere ich TXT zu XLSX in Java mit dem SDK?

Verwenden Sie die Klasse Conversion zusammen mit XlsxConvertOptions. Setzen Sie das gewünschte Trennzeichen, aktivieren Sie den Speicher‑Cache und rufen Sie conversion.convert(outputPath, options) auf. Das vollständige Beispiel ist im Abschnitt „Vollständiges funktionierendes Beispiel“ enthalten.

Kann ich durch Trennzeichen getrennte TXT-Dateien in XLSX konvertieren, ohne eigenen Parsing-Code zu schreiben?

Ja. Die XlsxConvertOptions.setDelimiter-Methode des SDK ermöglicht es, das Trennzeichen (Komma, Tabulator, Semikolon usw.) anzugeben, sodass Sie durch Aufruf einer einzigen API in Java durch Trennzeichen getrennte TXT-Dateien in XLSX konvertieren können.

Ist es möglich, ein mehrblättriges Arbeitsbuch aus einer einzelnen TXT‑Quelle zu erstellen?

Während das Grundbeispiel ein Blatt erstellt, können Sie die Eingabedaten programmgesteuert aufteilen und separate Konvertierungen für jedes Segment aufrufen, um anschließend die resultierenden Blätter zu einem mehrblättrigen XLSX‑Arbeitsbuch zu kombinieren, wobei Sie Apache POI oder die erweiterten Funktionen des SDK verwenden.

Mehr lesen