La conversione da CSV a XLSX in Java è una necessità frequente quando le applicazioni devono scambiare dati con gli utenti di Excel. Il Aspose.HTML Cloud SDK for Java fornisce un’API cloud potente che gestisce questa trasformazione in modo efficiente. In questa guida vedrai come configurare la dipendenza Maven, leggere i dati CSV con gli stream, generare una cartella di lavoro XLSX e invocare la conversione tramite l’API REST. Alla fine avrai un esempio completo, pronto per la produzione, che potrai adattare ai tuoi progetti.

Prerequisiti e Configurazione

Prima di iniziare, assicurati di avere quanto segue:

  • Java 17 o versioni successive installato.
  • Un account Aspose Cloud con client ID e client secret.
  • Maven installato per la gestione delle dipendenze.

Aggiungi Aspose.HTML Cloud SDK for Java al tuo progetto:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-html-cloud</artifactId>
    <version>23.12</version>
</dependency>

In alternativa, è possibile installare il pacchetto direttamente dalla riga di comando:

mvn install com.aspose:aspose-html-cloud

Scarica i binari SDK più recenti dalla pagina di download. Dopo che la dipendenza è stata risolta, sei pronto per iniziare a programmare. La sezione successiva ti guida attraverso l’implementazione passo dopo passo.

Conversione da CSV a XLSX in Java: Guida passo-passo

Passo 1: Carica il CSV di origine con Java Streams

Leggere il CSV riga per riga mantiene basso l’utilizzo della memoria, il che è essenziale per file di grandi dimensioni.

Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);

Passo 2: Inizializza il client Aspose.HTML Cloud

Crea un’istanza client con le tue credenziali. La classe client è documentata nel riferimento API.

HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

Passo 3: Converti il contenuto CSV in XLSX

L’SDK accetta i dati CSV come stringa e restituisce un flusso binario XLSX.

String csvContent = String.join("\n", csvLines);
ConvertDocumentRequest request = new ConvertDocumentRequest()
        .outputFormat("xlsx")
        .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);

Passo 4: Salva il file XLSX risultante

Scrivi l’array di byte restituito su un file su disco.

Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);

Passo 5: Verifica la conversione (Opzionale)

Puoi aprire rapidamente il file generato con Apache POI o qualsiasi visualizzatore di fogli di calcolo per assicurarti che i dati siano formattati correttamente.

Esempio di codice completo: conversione da CSV a XLSX con Aspose.HTML Cloud SDK

Il programma seguente raccoglie tutti i passaggi in un’unica classe eseguibile.

import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
import com.aspose.html.cloud.api.HtmlApi;
import com.aspose.html.cloud.model.ConvertDocumentRequest;

public class CsvToXlsxConverter {
    public static void main(String[] args) throws Exception {
        // 1. Load CSV file
        Path csvPath = Paths.get("input.csv");
        List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);
        String csvContent = String.join("\n", csvLines);

// 2. Initialise Aspose.HTML Cloud client
        HtmlApi htmlApi = new HtmlApi();
        htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
        htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

// 3. Convert CSV to XLSX
        ConvertDocumentRequest request = new ConvertDocumentRequest()
                .outputFormat("xlsx")
                .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
        byte[] xlsxBytes = htmlApi.convertDocument(request);

// 4. Save XLSX file
        Path xlsxPath = Paths.get("output.xlsx");
        Files.write(xlsxPath, xlsxBytes);

System.out.println("Conversion completed. XLSX saved to " + xlsxPath.toAbsolutePath());
    }
}

Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare i percorsi dei file (input.csv, output.xlsx), verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se riscontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.

Utilizzare cURL per chiamare Aspose.HTML Cloud per la generazione di XLSX

La stessa conversione può essere eseguita tramite l’API REST. Di seguito sono riportati i comandi cURL richiesti.

  1. Autenticare e Ottenere il Token di Accesso
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"

La risposta contiene un access_token che utilizzerai nelle chiamate successive.

  1. Carica il file CSV
curl -X POST "https://api.aspose.cloud/v4.0/html/storage/file/input.csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@input.csv"
  1. Esegui la conversione
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?outputFormat=xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"input.csv"}' \
     -o output.xlsx
  1. Scarica il file XLSX (se hai scelto una posizione di output diversa)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

Per un elenco completo di parametri, consulta la documentazione API ufficiale.

Considerazioni sulle prestazioni per la conversione di grandi CSV in XLSX

  • Stream l’input CSV - Usa Files.lines o un lettore bufferizzato per elaborare le righe una alla volta invece di caricare l’intero file in memoria.
  • Caricamenti in batch - Quando si gestiscono file più grandi di 100 MB, suddividi il CSV in blocchi più piccoli e converti ogni blocco separatamente, quindi unisci le parti XLSX risultanti se necessario.
  • Abilita la conversione asincrona - Aggiungi il parametro di query async=true alla richiesta di conversione per consentire al servizio cloud di elaborare il file in background, riducendo il tempo di attesa lato client.
  • Regola le impostazioni di output - Imposta il flag preserveFormatting su false se non hai bisogno di stili di cell esatti; ciò riduce la dimensione del payload e velocizza la conversione.

Conclusione

Questa guida ha dimostrato come eseguire la conversione da CSV a XLSX in Java utilizzando l’Aspose.HTML Cloud SDK for Java. Hai imparato a configurare Maven, leggere i dati CSV con gli stream, chiamare l’API cloud e gestire file di grandi dimensioni in modo efficiente. Ricorda che è necessaria una licenza commerciale per l’uso in produzione; è possibile ottenere una licenza temporanea dalla pagina della licenza temporanea e consultare le opzioni di prezzo complete nella pagina del prodotto. Con questi strumenti a disposizione, puoi integrare una funzionalità di conversione CSV‑to‑XLSX senza interruzioni in qualsiasi applicazione Java.

FAQs

  • Qual è il modo migliore per gestire i file CSV che contengono virgole all’interno di campi tra virgolette?
    Utilizzare un parser CSV robusto come Apache Commons CSV prima di passare i dati all’API di conversione. Il parser rispetta i delimitatori tra virgolette, garantendo un’estrazione accurata delle righe.

  • Il SDK Aspose.HTML Cloud supporta l’output XLSX senza un passaggio intermedio di HTML ?
    Sì. Il metodo convertDocument può accettare contenuto CSV grezzo e produrre direttamente un file XLSX, come mostrato negli esempi di codice.

  • Posso eseguire la conversione localmente senza utilizzare il cloud?
    L’Aspose.HTML Cloud SDK è un servizio basato sul cloud, quindi è necessaria una connessione a Internet e credenziali valide. Per scenari on‑premise, considerare Aspose.Cells, che è un prodotto separato.

  • Come monitorare lo stato di una richiesta di conversione asincrona?
    L’API restituisce un ID lavoro quando async=true è usato. Interroga l’endpoint /jobs/{jobId} per verificare lo stato, quindi scarica il risultato una volta completato il lavoro.

Leggi di più