Converter dados de texto simples em uma planilha Excel estruturada é uma tarefa frequente para desenvolvedores Java que precisam analisar ou compartilhar informações. Conholdate.Total for Java é um SDK poderoso que simplifica a conversão de TXT para XLSX no fluxo de trabalho Java em qualquer ambiente de servidor ou desktop. Neste guia, você aprenderá como configurar a biblioteca, percorrer cada passo de codificação, explorar as opções de conversão e aplicar dicas de desempenho para lidar eficientemente com arquivos grandes.
Antes de Começar: Pré-requisitos e Instalação
Para seguir este tutorial, você precisa:
- Kit de Desenvolvimento Java 8 ou superior
- Uma IDE como IntelliJ IDEA ou Eclipse
- Maven para gerenciamento de dependências
- Acesso à internet para baixar os artefatos do SDK
Adicione o repositório Maven da Conholdate e a dependência do SDK ao seu 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>
Baixar o pacote SDK mais recente da página oficial: Baixar Conholdate.Total for Java. Depois que a dependência for resolvida, você está pronto para começar a codificar. A próxima seção percorre a implementação passo a passo.
Construindo passo a passo: converter TXT para XLSX em Java
Etapa 1: Verificar se o arquivo de entrada existe
Primeiro, certifique-se de que o arquivo TXT de origem está presente. O código verifica o caminho do arquivo e aborta se o arquivo não puder ser encontrado.
String inputPath = "sample.txt";
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
System.err.println("Input file not found: " + inputPath);
return;
}
Etapa 2: Configurar opções de conversão
Configure como o SDK deve interpretar os dados TXT. Você pode definir o delimitador (tab, vírgula, ponto e vírgula, etc.), preservar a formatação original e habilitar o cache de memória para arquivos grandes.
XlsxConvertOptions options = new XlsxConvertOptions();
options.setDelimiter('\t'); // Tab‑delimited example
options.setPreserveOriginalFormatting(true);
options.setEnableMemoryCache(true);
Para mais detalhes, veja a referência da API XlsxConvertOptions.
Etapa 3: Execute a Conversão
Crie uma instância Conversion com o arquivo de entrada e chame convert para gerar a saída 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;
}
A classe Conversion lida com o trabalho pesado nos bastidores, transformando cada linha do arquivo TXT em linhas e colunas na planilha.
Etapa 4: Verificar o Arquivo de Saída e Registrar o Resultado
Após a conversão, verifique se o arquivo XLSX foi criado e não está vazio.
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.");
}
Etapa 5: Validação rápida com Apache POI
Opcionalmente, use o Apache POI para ler a pasta de trabalho gerada e confirmar a contagem de planilhas e linhas.
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());
}
Com a conversão concluída, você pode agora explorar opções de configuração adicionais ou dimensionar o processo para converter em lote muitos arquivos.
Exemplo completo em funcionamento para converter TXT em XLSX em Java
O código a seguir demonstra a implementação completa do fluxo de trabalho de conversão de TXT para XLSX em Java usando 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: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão corretamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.
Configurando Opções de Conversão
O SDK expõe várias opções que permitem ajustar finamente o processo de conversão:
- Delimiter - Determina como o SDK divide cada linha do arquivo TXT em colunas. O exemplo usa um caractere de tabulação (
'\t'). Você pode alterá‑lo para uma vírgula (',') ou qualquer outro caractere que corresponda aos seus dados de origem. - PreserveOriginalFormatting - Quando definido como
true, o SDK tenta manter a formatação original do texto (como negrito ou itálico) nas células XLSX resultantes. - EnableMemoryCache - Ativar essa opção melhora o desempenho para arquivos grandes ao armazenar em cache dados intermediários na memória.
Essas opções são configuradas através do objeto XlsxConvertOptions, como mostrado na seção passo a passo acima.
Otimizando o Desempenho da Conversão
Ao converter arquivos TXT grandes, considere as seguintes dicas:
- Habilitar Cache de Memória -
options.setEnableMemoryCache(true);reduz a E/S de disco e acelera o processamento. - Transmitir a Entrada - O SDK lê o arquivo de origem de forma streaming, mas evite carregar o arquivo inteiro em uma
Stringantes da conversão. - Reutilizar Instâncias de Conversão - Se precisar converter muitos arquivos, crie um único objeto
Conversionpor thread e reutilize‑o para cada arquivo, a fim de minimizar a sobrecarga de criação de objetos. - Ajustar Heap da JVM - Para conjuntos de dados muito grandes, aumente o tamanho do heap da JVM (
-Xmx2gou superior) para evitarOutOfMemoryError.
Aplicar essas práticas garante que a operação de conversão de TXT para XLSX em Java permaneça rápida e eficiente em memória, mesmo com arquivos de origem de tamanho gigabyte.
Concluindo
Agora você viu como converter TXT para XLSX em Java usando Conholdate.Total for Java. O SDK lida com a análise de delimitadores, preservação de formatação e gerenciamento de memória, permitindo que você gere pastas de trabalho do Excel profissionais sem depender do Microsoft Office. Para implantações em produção, lembre‑se de adquirir uma licença adequada; você pode revisar os detalhes de preços na página de preços e obter uma licença temporária para testes na página de licença temporária. Com o código e as dicas deste guia, você pode integrar a conversão de TXT‑para‑XLSX em qualquer aplicação Java, automatizar o processamento em lote e entregar os dados em um formato que os usuários finais podem manipular facilmente.
Perguntas Frequentes
Como converto TXT para XLSX em Java usando o SDK?
Use a classe Conversion junto com XlsxConvertOptions. Defina o delimitador desejado, habilite o cache de memória e chame conversion.convert(outputPath, options). O exemplo completo é fornecido na seção “Full Working Example”.
Posso converter arquivos TXT delimitados para XLSX sem escrever código de análise personalizado?
Sim. O método XlsxConvertOptions.setDelimiter do SDK permite especificar o delimitador (vírgula, tabulação, ponto e vírgula, etc.) para que você possa converter arquivos TXT delimitados para XLSX em Java com uma única chamada de API.
É possível criar uma pasta de trabalho multi‑planilha a partir de uma única fonte TXT?
Embora o exemplo básico crie uma planilha, você pode dividir os dados de entrada programaticamente e invocar conversões separadas para cada segmento, e então combinar as planilhas resultantes em uma pasta de trabalho XLSX multi‑planilha usando o Apache POI ou os recursos avançados do SDK.
