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:

  1. Habilitar Cache de Memória - options.setEnableMemoryCache(true); reduz a E/S de disco e acelera o processamento.
  2. Transmitir a Entrada - O SDK lê o arquivo de origem de forma streaming, mas evite carregar o arquivo inteiro em uma String antes da conversão.
  3. Reutilizar Instâncias de Conversão - Se precisar converter muitos arquivos, crie um único objeto Conversion por thread e reutilize‑o para cada arquivo, a fim de minimizar a sobrecarga de criação de objetos.
  4. Ajustar Heap da JVM - Para conjuntos de dados muito grandes, aumente o tamanho do heap da JVM (-Xmx2g ou superior) para evitar OutOfMemoryError.

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.

Leia Mais