Transformar dados JSON em uma planilha Excel é uma necessidade frequente ao relatar ou analisar informações estruturadas. Aspose.Words Cloud SDK for Java oferece uma API poderosa baseada em nuvem que simplifica essa conversão em aplicações Java. Neste guia, percorreremos como converter JSON para XLSX em Java, cobrindo um exemplo de código completo, as chamadas REST equivalentes com cURL e recomendações essenciais de boas práticas. Ao final, você será capaz de gerar arquivos XLSX a partir de qualquer fonte JSON e lidar com estruturas aninhadas com facilidade.

Gerar XLSX a partir de JSON usando Java - Exemplo de Código Completo

Este exemplo demonstra como ler um arquivo JSON, criar uma tabela DOCX e convertê‑la para XLSX usando Aspose.Words Cloud SDK for Java.

import com.aspose.words.cloud.*;
import com.aspose.words.cloud.model.*;
import com.aspose.words.cloud.api.*;
import com.aspose.words.cloud.auth.*;
import com.fasterxml.jackson.databind.*;
import java.io.*;
import java.util.*;

public class JsonToXlsxConverter {
    public static void main(String[] args) throws Exception {
        // Initialize API
        String clientId = "YOUR_CLIENT_ID";
        String clientSecret = "YOUR_CLIENT_SECRET";
        WordsApi wordsApi = new WordsApi(clientId, clientSecret);
        
        // Paths
        String jsonPath = "data.json";
        String tempDocxPath = "temp.docx";
        String outputXlsxPath = "output.xlsx";
        
        // Read JSON
        ObjectMapper mapper = new ObjectMapper();
        List<Map<String, Object>> records = mapper.readValue(new File(jsonPath),
                mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
        
        // Define column order (keys from first record)
        List<String> columns = new ArrayList<>(records.get(0).keySet());
        
        // Create empty DOCX in cloud
        CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
        wordsApi.createDocument(createRequest);
        
        // Build table rows
        TableRowInsert requestRow = new TableRowInsert();
        // First row - header
        TableRow headerRow = new TableRow();
        List<TableCell> headerCells = new ArrayList<>();
        for (String col : columns) {
            TableCell cell = new TableCell();
            cell.setText(col);
            headerCells.add(cell);
        }
        headerRow.setTableCellList(headerCells);
        // Insert header row at position 0
        InsertTableRowRequest insertHeader = new InsertTableRowRequest("temp.docx", 0, headerRow);
        wordsApi.insertTableRow(insertHeader);
        
        // Insert data rows
        int rowIndex = 1;
        for (Map<String, Object> rec : records) {
            TableRow dataRow = new TableRow();
            List<TableCell> dataCells = new ArrayList<>();
            for (String col : columns) {
                TableCell cell = new TableCell();
                cell.setText(String.valueOf(rec.get(col)));
                dataCells.add(cell);
            }
            dataRow.setTableCellList(dataCells);
            InsertTableRowRequest insertRow = new InsertTableRowRequest("temp.docx", rowIndex, dataRow);
            wordsApi.insertTableRow(insertRow);
            rowIndex++;
        }
        
        // Convert DOCX to XLSX
        ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
        byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);
        try (FileOutputStream fos = new FileOutputStream(outputXlsxPath)) {
            fos.write(xlsxBytes);
        }
    }
}

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 devidamente 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.

Conversão de JSON para XLSX via API REST usando cURL

A mesma conversão pode ser realizada sem escrever código Java, chamando diretamente a Aspose.Words Cloud REST API.

  1. Obter um token de acesso - a API usa OAuth 2.0.
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Carregue o arquivo JSON (a API espera uma fonte DOCX, então primeiro carregamos um DOCX de espaço reservado).
curl -X PUT "https://api.aspose.cloud/v4.0/words/temp.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
     --data-binary "@temp.docx"
  1. Criar uma tabela a partir de JSON - esta etapa é tratada pelo SDK no código; com a API REST, você enviaria um DOCX pré‑preenchido que já contém a tabela.

  2. Converter o DOCX para XLSX

curl -X GET "https://api.aspose.cloud/v4.0/words/temp.docx?format=xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

Para obter uma lista completa de parâmetros, consulte a documentação oficial da API.

Converter JSON para XLSX em Java - Como o Código Funciona

Abaixo está uma análise concisa das principais seções no exemplo Java.

  1. Inicialização da API - WordsApi wordsApi = new WordsApi(clientId, clientSecret); cria um cliente autenticado.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
  1. Lendo JSON - ObjectMapper desserializa o arquivo JSON em uma lista de mapas, preservando a ordem original dos campos.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
        new File(jsonPath),
        mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
  1. Criando um DOCX na nuvem - CreateDocumentRequest cria um DOCX vazio que hospedará a tabela.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
  1. Construindo a linha de cabeçalho - As chaves do primeiro registro definem a ordem das colunas, e cada chave se torna uma célula de cabeçalho.
TableRow headerRow = new TableRow();
List<TableCell> headerCells = new ArrayList<>();
for (String col : columns) {
    TableCell cell = new TableCell();
    cell.setText(col);
    headerCells.add(cell);
}
headerRow.setTableCellList(headerCells);
InsertTableRowRequest insertHeader = new InsertTableRowRequest("temp.docx", 0, headerRow);
wordsApi.insertTableRow(insertHeader);
  1. Inserindo linhas de dados - Cada objeto JSON é convertido em um TableRow onde cada célula recebe a representação em string do valor correspondente.
for (Map<String, Object> rec : records) {
    TableRow dataRow = new TableRow();
    List<TableCell> dataCells = new ArrayList<>();
    for (String col : columns) {
        TableCell cell = new TableCell();
        cell.setText(String.valueOf(rec.get(col)));
        dataCells.add(cell);
    }
    dataRow.setTableCellList(dataCells);
    InsertTableRowRequest insertRow = new InsertTableRowRequest("temp.docx", rowIndex, dataRow);
    wordsApi.insertTableRow(insertRow);
    rowIndex++;
}
  1. Conversão para XLSX - ConvertDocumentRequest informa ao serviço para transformar o DOCX temporário em um arquivo XLSX, que é então gravado localmente.
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);

Para referência detalhada da API, visite o Aspose.Words Cloud API Reference.

Instalando e Configurando Aspose.Words Cloud SDK para Java

Adicione a dependência Maven ao pom.xml do seu projeto:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words-cloud</artifactId>
    <version>26.9.0</version>
</dependency>

Faça o download dos JARs mais recentes na página de download se preferir a instalação manual.
Pré-requisitos:

  • Java 8 ou superior.
  • Uma conta Aspose Cloud com client ID e client secret.
  • Acesso de rede ao api.aspose.cloud.

Configure o SDK definindo as variáveis clientId e clientSecret conforme mostrado no exemplo de código.

Conclusão

Converter JSON para XLSX em Java torna‑se simples com o Aspose.Words Cloud SDK for Java. O exemplo fornecido orienta você a ler JSON, construir uma tabela DOCX e convertê‑la em uma pasta de trabalho XLSX, enquanto a seção cURL mostra uma alternativa independente de linguagem. Lembre‑se de garantir uma licença adequada para uso em produção; você pode ver os preços na página do produto e obter uma licença temporária na página de licença temporária. Com essas ferramentas em mãos, você pode automatizar a geração de relatórios Excel a partir de qualquer fonte JSON de forma rápida e confiável.

Perguntas Frequentes

Como converto JSON para XLSX em Java usando Aspose.Words Cloud SDK for Java?
Use o exemplo de código acima ou a API REST. O SDK lê JSON, cria uma tabela DOCX e, em seguida, converte‑a para XLSX com uma única chamada de API.

Pode o SDK lidar com estruturas JSON aninhadas?
Sim. Achate objetos aninhados em colunas separadas antes de inserir linhas, como demonstrado na seção “Dicas Práticas”.

Preciso de uma licença para implantações de produção?
É necessária uma licença válida para produção. As opções de compra estão listadas na página do produto, e uma licença temporária está disponível para testes na página de licença temporária.

Existe uma maneira de realizar a conversão sem escrever código Java?
Com certeza. O exemplo cURL mostra como obter o mesmo resultado via a API REST, que pode ser chamada de qualquer plataforma.

Leia Mais