Automatisering af transformationen af strukturerede data til polerede dokumenter er et hyppigt behov for backend‑tjenester. Aspose.Cells Cloud SDK for Node.js gør det muligt for udviklere at arbejde med Excel‑arbejdsbøger og konvertere dem til forskellige formater via en kraftfuld REST API. I denne vejledning vil du lære, hvordan du importerer XML data til PDF ved hjælp af SDK’en, der dækker alt fra godkendelse til filupload, XML‑mapping og PDF‑generering.

Forudsætninger og opsætning

Før du begynder, skal du sikre dig, at du har følgende:

  • Node.js 14 eller højere installeret på din maskine.
  • En Aspose Cloud‑konto med klient‑ID og klient‑hemmelighed.
  • Adgang til en terminal eller IDE, hvor du kan køre Node.js‑scripts.

Installer Aspose.Cells Cloud SDK for Node.js:

npm install asposecellscloud

Derefter skal du konfigurere dine godkendelsesoplysninger. Følgende kodeudsnit er taget direkte fra referenceimplementeringen:

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);

Du skal også downloade SDK-pakken fra den officielle udgivelsesside: Aspose.Cells Cloud SDK for Node.js Download. Når forudsætningerne er på plads, kan vi gå videre til den faktiske implementering.

Importér XML-data til PDF i Node.js: Trin-for-trin gennemgang

Trin 1: Indlæs nødvendige moduler og opret API-klient

Først skal du importere de nødvendige moduler og oprette en forekomst af API-klienten.

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);

Trin 2: Definer hjælperfunktion til filupload

Opret en genanvendelig funktion, der uploader en lokal fil til Aspose Cloud storage.

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

Trin 3: Upload arbejdsbog og XML-filer

Upload Excel‑skabelonen og XML‑datafilen til Temp‑mappen i cloud‑lagringen.

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

Trin 4: Importér XML-data til regnearket

Kortlæg XML-filen på målregnearket. Dette er kernen i importere XML-data til PDF‑arbejdsgangen.

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

Trin 5: Konverter den opdaterede projektmappe til PDF og download

Endelig gemmer du projektmappen som en PDF og henter filen.

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);

Når disse trin er fuldført, er XML‑dataene blevet importeret med succes, og den resulterende PDF er klar til brug.

Komplet kodeeksempel: Importér XML-data til PDF med detaljerede kommentarer

Følgende kode demonstrerer den fulde ende‑til‑ende‑proces.

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);
    }
})();

Bemærk: Dette kodeeksempel demonstrerer kernefunktionaliteten. Før du bruger det i dit projekt, skal du sørge for at opdatere alle filstier og konfigurationsværdier, så de matcher dit faktiske miljø, verificere at alle nødvendige afhængigheder er korrekt installeret, og teste grundigt i dit udviklingsmiljø. Hvis du støder på problemer, så se venligst den officielle dokumentation eller kontakt supportteamet for assistance.

XML til PDF‑konvertering ved hjælp af cURL og REST API’et

Nedenfor er et cURL‑baseret workflow, der udfører de samme handlinger uden at skrive nogen Node.js‑kode.

  1. Få en adgangstoken
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. Upload Excel-skabelonen
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. Upload XML-datafilen
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. Importér XML i regnearket
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. Konverter arbejdsbogen til 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. Download den genererede PDF
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o result.pdf

For en komplet liste over parametre og yderligere indstillinger, se API-referencen.

Finjustering af XML til PDF-indstillinger

Importoperationen tilbyder flere flag, der giver dig mulighed for at kontrollere, hvordan XML-dataene flettes sammen:

  • importDataOnly - Når den er sat til true, importeres kun datarækkerne, og den eksisterende formatering forbliver urørt.
  • importDataOnlySpecified - Skal sættes til true sammen med importDataOnly for at aktivere indstillingen.
  • xmlMapIndex - Vælger hvilken XML‑map (hvis flere er defineret), der skal bruges til importen.

Disse muligheder er allerede demonstreret i importXmlRequest-objektet, der blev brugt tidligere:

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

Du kan også justere PDF‑specifikke indstillinger såsom sidestørrelse, orientering og billedkvalitet ved at videregive et PdfSaveOptions‑objekt til saveWorkbook‑metoden. Se API‑referencen for den komplette liste over tilgængelige indstillinger.

Konklusion

Ved at følge denne vejledning har du nu en komplet løsning til import af XML-data til PDF ved hjælp af Aspose.Cells Cloud SDK for Node.js. Tilgangen kombinerer enkle SDK‑kald med valgfrie cURL‑kommandoer, hvilket giver dig fleksibilitet, uanset om du foretrækker en fuld‑stack Node.js‑implementering eller en letvægts‑REST‑integration. Husk at sikre dine klientoplysninger og overvej at anvende en midlertidig eller betalt licens til produktionsarbejdsbelastninger. Du kan få en midlertidig licens fra midlertidig licensside og udforske prisoptioner på produktsiden. Happy coding!

FAQs

  • Hvordan fungerer import af XML-data til PDF med Aspose.Cells Cloud SDK for Node.js?
    SDK’en uploader din Excel-skabelon og XML-fil til Aspose Cloud-lagring, kortlægger XML-dataene på et regneark og gemmer derefter projektmappen som en PDF. Se Aspose.Cells Cloud SDK for Node.js for detaljerede API-referencer.

  • Kan jeg tilpasse PDF-outputtet, når jeg bruger import af XML-data til PDF?
    Ja, saveWorkbook-metoden accepterer format‑specifikke indstillinger såsom sideorientering, billedkvalitet og komprimeringsniveau. Juster disse indstillinger i anmodningens payload som beskrevet i API reference.

  • Hvilken godkendelsesmetode er påkrævet for REST‑opkald?
    Alle anmodninger skal indeholde et OAuth 2.0‑adgangstoken, som er hentet fra Aspose Cloud‑godkendelses‑endpointet. Brug dit klient‑ID og din klient‑hemmelighed til at anmode om et token, før du kalder nogen API.

  • Er der en måde at teste processen på uden at påvirke produktionsdata?
    Du kan bruge den midlertidige licens, der er leveret på siden med midlertidig licens, til at køre koden i et ikke‑produktionsmiljø.

Læs mere