Convertire dati di testo semplice in una cartella di lavoro Excel strutturata è un’operazione frequente per gli sviluppatori Java che devono analizzare o condividere informazioni. Conholdate.Total for Java è un SDK potente che semplifica la conversione da TXT a XLSX nel flusso di lavoro Java su qualsiasi server o ambiente desktop. In questa guida imparerai come configurare la libreria, esaminare ogni passaggio di codifica, esplorare le opzioni di conversione e applicare consigli sulle prestazioni per gestire file di grandi dimensioni in modo efficiente.
Prima di iniziare: Requisiti e installazione
Per seguire questo tutorial è necessario:
- Java Development Kit 8 o versioni successive
- Un IDE come IntelliJ IDEA o Eclipse
- Maven per la gestione delle dipendenze
- Accesso a Internet per scaricare gli artefatti SDK
Aggiungi il repository Maven di Conholdate e la dipendenza SDK al tuo 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>
Scarica l’ultimo pacchetto SDK dalla pagina ufficiale: Download Conholdate.Total for Java. Dopo che la dipendenza è stata risolta, sei pronto per iniziare a programmare. La sezione successiva guida attraverso l’implementazione passo dopo passo.
Costruirlo passo dopo passo: Convertire TXT in XLSX in Java
Passo 1: Verifica che il file di input esista
Innanzitutto, assicurati che il file TXT di origine sia presente. Il codice verifica il percorso del file e interrompe l’esecuzione se il file non può essere trovato.
String inputPath = "sample.txt";
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
System.err.println("Input file not found: " + inputPath);
return;
}
Passo 2: Configura le opzioni di conversione
Configura come l’SDK deve interpretare i dati TXT. Puoi impostare il delimitatore (tabulazione, virgola, punto e virgola, ecc.), preservare la formattazione originale e abilitare la memorizzazione nella cache di memoria per file di grandi dimensioni.
XlsxConvertOptions options = new XlsxConvertOptions();
options.setDelimiter('\t'); // Tab‑delimited example
options.setPreserveOriginalFormatting(true);
options.setEnableMemoryCache(true);
Per ulteriori dettagli, consulta la riferimento API XlsxConvertOptions.
Passo 3: Esegui la conversione
Crea un’istanza di Conversion con il file di input e chiama convert per produrre l’output XLSX.
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;
}
La classe Conversion gestisce il lavoro pesante dietro le quinte, trasformando ogni riga del file TXT in righe e colonne nel foglio di calcolo.
Passo 4: Controlla il file di output e registra il risultato
Dopo la conversione, verifica che il file XLSX sia stato creato e non sia vuoto.
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.");
}
Passo 5: Validazione rapida con Apache POI
Facoltativamente, usa Apache POI per leggere la cartella di lavoro generata e confermare il numero di fogli e di righe.
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());
}
Una volta completata la conversione, puoi ora esplorare ulteriori opzioni di configurazione o scalare il processo per convertire in batch molti file.
Esempio completo funzionante per convertire TXT in XLSX in Java
Il seguente codice dimostra l’implementazione completa del flusso di lavoro per convertire TXT in XLSX in Java utilizzando 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.");
}
}
}
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano installate correttamente e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Configurazione delle opzioni di conversione
L’SDK espone diverse opzioni che consentono di perfezionare il processo di conversione:
- Delimiter - Determina come l’SDK suddivide ogni riga del file TXT in colonne. L’esempio utilizza un carattere di tabulazione (
'\t'). È possibile cambiarlo in una virgola (',') o in qualsiasi altro carattere che corrisponda ai dati di origine. - PreserveOriginalFormatting - Quando impostato su
true, l’SDK tenta di mantenere lo stile del testo originale (come grassetto o corsivo) nelle celle XLSX risultanti. - EnableMemoryCache - L’attivazione di questa opzione migliora le prestazioni per file di grandi dimensioni memorizzando nella cache i dati intermedi in memoria.
Queste opzioni sono configurate tramite l’oggetto XlsxConvertOptions, come mostrato nella sezione passo‑passo sopra.
Ottimizzazione delle prestazioni di conversione
Durante la conversione di file TXT di grandi dimensioni, considerare i seguenti suggerimenti:
- Abilita la Cache in Memoria -
options.setEnableMemoryCache(true);riduce le operazioni di I/O su disco e velocizza l’elaborazione. - Trasmetti in Streaming l’Input - L’SDK legge il file sorgente in modalità streaming, ma evita di caricare l’intero file in una
Stringprima della conversione. - Riutilizza le Istanze di Conversione - Se devi convertire molti file, crea un unico oggetto
Conversionper thread e riutilizzalo per ogni file per ridurre il sovraccarico di creazione degli oggetti. - Regola l’Heap JVM - Per set di dati molto grandi, aumenta la dimensione dell’heap JVM (
-Xmx2go superiore) per prevenireOutOfMemoryError.
Applicare queste pratiche garantisce che l’operazione di conversione da TXT a XLSX in Java rimanga veloce ed efficiente in termini di memoria anche con file sorgente di dimensioni gigabyte.
Conclusioni
Hai ora visto come convertire TXT in XLSX in Java usando Conholdate.Total for Java. L’SDK gestisce l’analisi dei delimitatori, la conservazione della formattazione e la gestione della memoria, consentendoti di generare cartelle di lavoro Excel professionali senza dipendere da Microsoft Office. Per le distribuzioni in produzione, ricorda di acquisire una licenza adeguata; puoi consultare i dettagli dei prezzi nella pagina dei prezzi e ottenere una licenza temporanea per i test nella pagina della licenza temporanea. Con il codice e i suggerimenti di questa guida, puoi integrare la conversione da TXT‑to‑XLSX in qualsiasi applicazione Java, automatizzare l’elaborazione batch e fornire dati in un formato che gli utenti finali possono manipolare facilmente.
FAQs
Come converto TXT in XLSX in Java usando l’SDK?
Utilizza la classe Conversion insieme a XlsxConvertOptions. Imposta il delimitatore desiderato, abilita la cache in memoria e chiama conversion.convert(outputPath, options). L’esempio completo è fornito nella sezione “Full Working Example”.
Posso convertire file TXT delimitati in XLSX senza scrivere codice di parsing personalizzato?
Sì. Il metodo XlsxConvertOptions.setDelimiter dell’SDK consente di specificare il delimitatore (virgola, tabulazione, punto e virgola, ecc.) così è possibile convertire file TXT delimitati in XLSX in Java con una singola chiamata API.
È possibile creare una cartella di lavoro multi‑sheet da una singola fonte TXT?
Mentre l’esempio di base crea un foglio, è possibile suddividere i dati di input programmaticamente e invocare conversioni separate per ogni segmento, quindi combinare i fogli risultanti in una cartella di lavoro XLSX multi‑sheet utilizzando Apache POI o le funzionalità avanzate dell’SDK.
