Het converteren van platte tekstgegevens naar een gestructureerd Excel‑werkboek is een veelvoorkomende taak voor Java‑ontwikkelaars die informatie moeten analyseren of delen. Conholdate.Total for Java is een krachtige SDK die het omzetten van TXT naar XLSX in een Java‑workflow op elke server of desktopomgeving vereenvoudigt. In deze gids leer je hoe je de bibliotheek installeert, elke programmeerstap doorloopt, conversie‑opties verkent en prestatie‑tips toepast om grote bestanden efficiënt te verwerken.
Voordat u begint: vereisten en installatie
Om deze tutorial te volgen heb je nodig:
- Java Development Kit 8 of hoger
- Een IDE zoals IntelliJ IDEA of Eclipse
- Maven voor afhankelijkheidsbeheer
- Toegang tot internet om de SDK‑artefacten te downloaden
Voeg de Conholdate Maven-repository en de SDK-afhankelijkheid toe aan uw pom.xml:
<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>
Download the latest SDK package from the official page: Download Conholdate.Total for Java. Nadat de afhankelijkheid is opgelost, ben je klaar om te beginnen met coderen. De volgende sectie loopt de implementatie stap voor stap door.
Stap voor stap bouwen: TXT naar XLSX converteren in Java
Stap 1: Controleer of invoerbestand bestaat
Zorg er eerst voor dat het bron‑TXT‑bestand aanwezig is. De code controleert het bestandspad en stopt als het bestand niet kan worden gevonden.
String inputPath = "sample.txt";
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
System.err.println("Input file not found: " + inputPath);
return;
}
Stap 2: Conversie‑opties instellen
Configureer hoe de SDK de TXT‑gegevens moet interpreteren. U kunt het scheidingsteken (tab, komma, puntkomma, enz.) instellen, de oorspronkelijke opmaak behouden en geheugencaching inschakelen voor grote bestanden.
XlsxConvertOptions options = new XlsxConvertOptions();
options.setDelimiter('\t'); // Tab‑delimited example
options.setPreserveOriginalFormatting(true);
options.setEnableMemoryCache(true);
Voor meer details, zie de XlsxConvertOptions API-referentie.
Stap 3: Voer de conversie uit
Maak een Conversion-instantie met het invoerbestand en roep convert aan om de XLSX-uitvoer te genereren.
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;
}
De Conversion-klasse verzorgt het zware werk achter de schermen en zet elke regel van het TXT‑bestand om in rijen en kolommen in het spreadsheet.
Stap 4: Controleer uitvoerbestand en log resultaat
Na de conversie, controleer of het XLSX‑bestand is aangemaakt en niet leeg is.
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.");
}
Stap 5: Snelle validatie met Apache POI
Optioneel kunt u Apache POI gebruiken om de gegenereerde werkmap te lezen en het aantal bladen en rijen te bevestigen.
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());
}
Nu de conversie voltooid is, kun je nu extra configuratie‑opties verkennen of het proces opschalen om veel bestanden batch‑converteren.
Volledig werkend voorbeeld voor het converteren van TXT naar XLSX in Java
De volgende code toont de volledige implementatie van de conversie van TXT naar XLSX in Java‑workflow met behulp van 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.");
}
}
}
Opmerking: Dit codevoorbeeld toont de kernfunctionaliteit. Voordat u het in uw project gebruikt, moet u ervoor zorgen dat u alle bestandspaden en configuratiewaarden bijwerkt zodat ze overeenkomen met uw daadwerkelijke omgeving, verifieer dat alle vereiste afhankelijkheden correct zijn geïnstalleerd, en test grondig in uw ontwikkelomgeving. Als u problemen ondervindt, raadpleeg dan de officiële documentatie of neem contact op met het ondersteuningsteam voor hulp.
Configuratie van conversie‑opties
De SDK biedt verschillende opties die u in staat stellen het conversieproces fijn‑af te stemmen:
- Delimiter - Bepaalt hoe de SDK elke regel van het TXT‑bestand in kolommen splitst. Het voorbeeld gebruikt een tab‑teken (
'\t'). U kunt dit wijzigen naar een komma (',') of elk ander teken dat overeenkomt met uw brongegevens. - PreserveOriginalFormatting - Wanneer ingesteld op
true, probeert de SDK de oorspronkelijke tekstopmaak (zoals vet of cursief) in de resulterende XLSX‑cellen te behouden. - EnableMemoryCache - Het activeren van deze vlag verbetert de prestaties voor grote bestanden door tussenliggende gegevens in het geheugen te cachen.
Deze opties worden geconfigureerd via het XlsxConvertOptions‑object, zoals weergegeven in de stap‑voor‑stap sectie hierboven.
Prestaties van conversie optimaliseren
Bij het converteren van grote TXT‑bestanden, houd rekening met de volgende tips:
- Geheugencache inschakelen -
options.setEnableMemoryCache(true);vermindert schijf‑I/O en versnelt de verwerking. - Stream de invoer - De SDK leest het bronbestand in streamingmodus, maar vermijd het laden van het volledige bestand in een
Stringvóór conversie. - Conversie‑instanties hergebruiken - Als u veel bestanden moet converteren, maak dan één
Conversion‑object per thread aan en hergebruik dit voor elk bestand om de overhead van objectcreatie te minimaliseren. - JVM‑heap aanpassen - Voor zeer grote datasets, vergroot de JVM‑heapgrootte (
-Xmx2gof hoger) om eenOutOfMemoryErrorte voorkomen.
Door deze praktijken toe te passen, blijft de conversie van TXT naar XLSX in Java snel en geheugen‑efficiënt, zelfs bij bronbestanden van gigabyte‑grootte.
Samenvatting
U heeft nu gezien hoe u TXT naar XLSX kunt converteren in Java met behulp van Conholdate.Total for Java. De SDK behandelt het ontleden van scheidingstekens, het behouden van opmaak en geheugenbeheer, waardoor u professionele Excel‑werkboeken kunt genereren zonder afhankelijk te zijn van Microsoft Office. Voor productie‑implementaties moet u een juiste licentie aanschaffen; u kunt de prijsdetails bekijken op de prijspagina en een tijdelijke licentie voor testen verkrijgen op de tijdelijke licentiepagina. Met de code en tips in deze gids kunt u TXT‑naar‑XLSX‑conversie integreren in elke Java‑applicatie, batchverwerking automatiseren en gegevens leveren in een formaat dat eindgebruikers gemakkelijk kunnen manipuleren.
Veelgestelde vragen
Hoe converteer ik TXT naar XLSX in Java met de SDK?
Gebruik de Conversion-klasse samen met XlsxConvertOptions. Stel het gewenste scheidingsteken in, schakel het geheugen‑cache in en roep conversion.convert(outputPath, options) aan. Het volledige voorbeeld wordt gegeven in de sectie “Volledig werkend voorbeeld”.
Kan ik door komma‑gescheiden TXT‑bestanden naar XLSX converteren zonder aangepaste parsecode te schrijven?
Ja. De SDK’s XlsxConvertOptions.setDelimiter‑methode stelt je in staat het scheidingsteken (komma, tab, puntkomma, enz.) op te geven, zodat je door komma‑gescheiden TXT naar XLSX kunt converteren in Java met één API‑aanroep.
Is het mogelijk om een meerbladig werkboek te maken vanuit één TXT-bron?
Hoewel het basisvoorbeeld één blad maakt, kun je de invoergegevens programmatisch splitsen en afzonderlijke conversies voor elk segment aanroepen, en vervolgens de resulterende bladen combineren tot een meerbladig XLSX‑werkboek met behulp van Apache POI of de geavanceerde functies van de SDK.
