L’automazione della trasformazione dei dati strutturati in documenti rifiniti è una necessità frequente per i servizi backend. Aspose.Cells Cloud SDK for Node.js consente agli sviluppatori di lavorare con cartelle di lavoro Excel e di convertirle in vari formati tramite una potente API REST. In questa guida imparerai come importare dati XML in PDF utilizzando l’SDK, coprendo tutto, dall’autenticazione al caricamento dei file, alla mappatura XML e alla generazione di PDF.

Prerequisiti e Configurazione

Prima di iniziare, assicurati di avere quanto segue:

  • Node.js 14 o versioni successive installati sulla tua macchina.
  • Un account Aspose Cloud con client ID e client secret.
  • Accesso a un terminale o IDE dove puoi eseguire script Node.js.

Installa Aspose.Cells Cloud SDK for Node.js:

npm install asposecellscloud

Successivamente, configura le tue credenziali di autenticazione. Il frammento seguente è preso direttamente dall’implementazione di riferimento:

const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);

Dovrai anche scaricare il pacchetto SDK dalla pagina di rilascio ufficiale: Aspose.Cells Cloud SDK for Node.js Download. Con i prerequisiti in ordine, possiamo passare all’implementazione reale.

Importazione di dati XML in PDF in Node.js: Guida passo passo

Passo 1: Carica i moduli richiesti e crea il client API

Per prima cosa, importa i moduli necessari e istanzia il client API.

const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');

const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);

Passo 2: Definisci la funzione di supporto per il caricamento del file

Crea una funzione riutilizzabile che carica un file locale su Aspose Cloud storage.

async function uploadFile(localFilePath, remoteFileName) {
    const fileContent = fs.readFileSync(localFilePath);
    await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}

Passo 3: Carica la cartella di lavoro e i file XML

Carica il modello Excel e il file dati XML nella cartella Temp dell’archiviazione cloud.

await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);

Passo 4: Importa dati XML nel foglio di lavoro

Mappa il file XML sul foglio di lavoro di destinazione. Questo è il fulcro del flusso di lavoro import XML data to PDF.

const importXmlRequest = {
    xmlFile: `${remoteFolder}/${xmlDataName}`,
    xmlMapIndex: 0,
    importDataOnly: true,
    importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);

Passo 5: Converti la cartella di lavoro aggiornata in PDF e scarica

Infine, salva la cartella di lavoro come PDF e recupera il file.

const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);

Con questi passaggi completati, i dati XML vengono importati con successo e il PDF risultante è pronto per l’uso.

Esempio di codice completo: Importa dati XML in PDF con commenti dettagliati

Il codice seguente dimostra l’intero processo end‑to‑end.

const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');

// ---- Configuration ---------------------------------------------------------
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);

// ---- File definitions -------------------------------------------------------
const localFolder = __dirname;
const remoteFolder = 'Temp';                     // folder in Aspose Cloud storage
const workbookName = 'template.xlsx';            // existing workbook template
const xmlDataName = 'data.xml';                  // XML file containing data
const outputPdfName = 'result.pdf';              // final PDF name

// ---- Helper functions -------------------------------------------------------
async function uploadFile(localFilePath, remoteFileName) {
    const fileContent = fs.readFileSync(localFilePath);
    await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}

async function importXml() {
    const importXmlRequest = {
        xmlFile: `${remoteFolder}/${xmlDataName}`,
        xmlMapIndex: 0,
        importDataOnly: true,
        importDataOnlySpecified: true
    };
    await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
}

async function convertToPdf() {
    const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
    await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
    const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
    fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);
}

// ---- Main execution ---------------------------------------------------------
(async () => {
    try {
        // Upload required files to Aspose Cloud storage
        await uploadFile(path.join(localFolder, workbookName), workbookName);
        await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);

// Import XML data into the workbook
        await importXml();

// Convert the updated workbook to PDF and download locally
        await convertToPdf();

console.log('XML data imported and PDF generated successfully.');
    } catch (err) {
        console.error('Error:', err.response ? err.response.text : err.message);
    }
})();

Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di utilizzarlo 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 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.

Conversione da XML a PDF con cURL e l’API REST

Di seguito è riportato un flusso di lavoro basato su cURL che esegue le stesse operazioni senza scrivere alcun codice Node.js.

  1. Ottieni un 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"
  1. Carica il modello Excel
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/template.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@template.xlsx"
  1. Carica il file di dati XML
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/data.xml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@data.xml"
  1. Importa XML nel foglio di lavoro
   curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/worksheets/Sheet1/importxml" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
              "xmlFile": "Temp/data.xml",
              "xmlMapIndex": 0,
              "importDataOnly": true,
              "importDataOnlySpecified": true
            }'
  1. Converti la cartella di lavoro in PDF
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/save?format=pdf&outPath=Temp/result.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  1. Scarica il PDF generato
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o result.pdf

Per un elenco completo di parametri e opzioni aggiuntive, vedere la riferimento API.

Ottimizzazione delle opzioni XML per PDF

L’operazione di importazione offre diverse opzioni che consentono di controllare come i dati XML vengono uniti:

  • importDataOnly - Quando impostato su true, vengono importate solo le righe di dati, lasciando intatto il formato esistente.
  • importDataOnlySpecified - Deve essere impostato su true insieme a importDataOnly per attivare l’opzione.
  • xmlMapIndex - Seleziona quale mappa XML (se ne sono definite più di una) deve essere utilizzata per l’importazione.

Queste opzioni sono già dimostrate nell’oggetto importXmlRequest usato in precedenza:

const importXmlRequest = {
    xmlFile: `${remoteFolder}/${xmlDataName}`,
    xmlMapIndex: 0,
    importDataOnly: true,
    importDataOnlySpecified: true
};

È possibile anche regolare le impostazioni specifiche per PDF, come dimensione della pagina, orientamento e qualità dell’immagine, passando un oggetto PdfSaveOptions al metodo saveWorkbook. Consulta la riferimento API per l’elenco completo delle opzioni disponibili.

Conclusione

Seguendo questo tutorial, ora disponi di una soluzione completa per importare dati XML in PDF utilizzando l’Aspose.Cells Cloud SDK for Node.js. L’approccio combina chiamate SDK semplici con comandi cURL opzionali, offrendoti flessibilità sia che tu preferisca un’implementazione full‑stack Node.js sia un’integrazione REST leggera. Ricorda di proteggere le credenziali client e di considerare l’applicazione di una licenza temporanea o a pagamento per i carichi di lavoro di produzione. Puoi ottenere una licenza temporanea dalla pagina della licenza temporanea ed esplorare le opzioni di prezzo nella pagina del prodotto. Buona programmazione!

FAQs

  • Come funziona l’importazione di dati XML in PDF con Aspose.Cells Cloud SDK for Node.js?
    L’SDK carica il tuo modello Excel e il file XML su Aspose Cloud storage, mappa i dati XML su un foglio di lavoro e quindi salva la cartella di lavoro come PDF. Consulta l’Aspose.Cells Cloud SDK for Node.js per riferimenti API dettagliati.

  • Posso personalizzare l’output PDF quando utilizzo l’importazione di dati XML in PDF?
    Sì, il metodo saveWorkbook accetta opzioni specifiche del formato come orientamento della pagina, qualità dell’immagine e livello di compressione. Regola queste impostazioni nel payload della richiesta come descritto nella riferimento API.

  • Quale metodo di autenticazione è richiesto per le chiamate REST?
    Tutte le richieste devono includere un token di accesso OAuth 2.0 ottenuto dal endpoint di autenticazione di Aspose Cloud. Utilizza il tuo client ID e client secret per richiedere un token prima di invocare qualsiasi API.

  • Esiste un modo per testare il processo senza influire sui dati di produzione?
    È possibile utilizzare la licenza temporanea fornita nella pagina della licenza temporanea per eseguire il codice in un ambiente non di produzione.

Leggi di più