L’automatisation de la transformation de données structurées en documents soignés est un besoin fréquent pour les services backend. Le Aspose.Cells Cloud SDK for Node.js permet aux développeurs de travailler avec des classeurs Excel et de les convertir en divers formats via une puissante API REST. Dans ce guide, vous apprendrez comment importer des données XML vers PDF en utilisant le SDK, couvrant tout, de l’authentification au téléchargement de fichiers, la cartographie XML et la génération de PDF.
Prérequis et configuration
Avant de commencer, assurez‑vous d’avoir ce qui suit :
- Node.js 14 ou version supérieure installé sur votre machine.
- Un compte Aspose Cloud avec ID client et secret client.
- Accès à un terminal ou à un IDE où vous pouvez exécuter des scripts Node.js.
Installez le SDK Aspose.Cells Cloud pour Node.js:
npm install asposecellscloud
Ensuite, configurez vos informations d’identification d’authentification. Le fragment suivant est tiré directement de l’implémentation de référence :
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);
Vous devrez également télécharger le package SDK depuis la page de publication officielle : Aspose.Cells Cloud SDK for Node.js Download. Une fois les prérequis en place, nous pouvons passer à la mise en œuvre réelle.
Importer des données XML en PDF avec Node.js : guide étape par étape
Étape 1 : Charger les modules requis et créer le client API
Tout d’abord, importez les modules nécessaires et créez une instance du 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);
Étape 2 : Définir la fonction d’assistance pour le téléchargement de fichier
Créez une fonction réutilisable qui télécharge un fichier local vers le stockage Aspose Cloud.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
Étape 3 : Téléverser le classeur et les fichiers XML
Téléversez le modèle Excel et le fichier de données XML dans le dossier Temp du stockage cloud.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
Étape 4 : Importer les données XML dans la feuille de calcul
Mappez le fichier XML sur la feuille de calcul cible. C’est le cœur du flux de travail import XML data to PDF.
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
Étape 5 : Convertir le classeur mis à jour en PDF et le télécharger
Enfin, enregistrez le classeur au format PDF et récupérez le fichier.
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);
Une fois ces étapes terminées, les données XML sont importées avec succès et le PDF résultant est prêt à être utilisé.
Exemple complet de code : Importation de données XML vers PDF avec commentaires détaillés
Le code suivant montre le processus complet de bout en bout.
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);
}
})();
Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Conversion XML en PDF à l’aide de cURL et de l’API REST
Voici un flux de travail basé sur cURL qui effectue les mêmes opérations sans écrire de code Node.js.
- Obtenir un jeton d’accès
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"
- Téléverser le modèle 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"
- Téléverser le fichier de données 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"
- Importer le XML dans la feuille de calcul
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
}'
- Convertir le classeur en 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"
- Télécharger le PDF généré
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Pour une liste complète des paramètres et des options supplémentaires, consultez la référence API.
Affinage des options XML vers PDF
L’opération d’importation propose plusieurs indicateurs qui vous permettent de contrôler la façon dont les données XML sont fusionnées :
- importDataOnly - Lorsqu’il est défini sur
true, seules les lignes de données sont importées, laissant le formatage existant intact. - importDataOnlySpecified - Doit être défini sur
trueen même temps queimportDataOnlypour activer l’option. - xmlMapIndex - Sélectionne la carte XML (si plusieurs sont définies) qui doit être utilisée pour l’importation.
Ces options sont déjà démontrées dans l’objet importXmlRequest utilisé précédemment :
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
Vous pouvez également ajuster les paramètres spécifiques au PDF tels que la taille de la page, l’orientation et la qualité de l’image en transmettant un objet PdfSaveOptions à la méthode saveWorkbook. Consultez la référence API pour la liste complète des options disponibles.
Conclusion
En suivant ce tutoriel, vous disposez désormais d’une solution complète pour importer des données XML vers PDF en utilisant le SDK Aspose.Cells Cloud pour Node.js. L’approche combine des appels SDK simples avec des commandes cURL optionnelles, vous offrant la flexibilité de choisir entre une implémentation Node.js full‑stack ou une intégration REST légère. N’oubliez pas de sécuriser vos identifiants client et d’envisager d’appliquer une licence temporaire ou payante pour les charges de travail en production. Vous pouvez obtenir une licence temporaire depuis la page de licence temporaire et explorer les options de tarification sur la page produit. Bon codage!
FAQ
-
Comment l’importation de données XML vers PDF fonctionne-t-elle avec Aspose.Cells Cloud SDK for Node.js ?
Le SDK télécharge votre modèle Excel et le fichier XML vers le stockage Aspose Cloud, mappe les données XML sur une feuille de calcul, puis enregistre le classeur au format PDF. Consultez le Aspose.Cells Cloud SDK for Node.js pour des références API détaillées. -
Puis-je personnaliser la sortie PDF lors de l’importation de données XML vers PDF ?
Oui, la méthodesaveWorkbookaccepte des options spécifiques au format telles que l’orientation de la page, la qualité de l’image et le niveau de compression. Ajustez ces paramètres dans la charge utile de la requête comme décrit dans la référence API. -
Quelle méthode d’authentification est requise pour les appels REST ?
Toutes les requêtes doivent inclure un jeton d’accès OAuth 2.0 obtenu à partir du point de terminaison d’authentification Aspose Cloud. Utilisez votre client ID et votre client secret pour demander un jeton avant d’appeler toute API. -
Existe-t-il un moyen de tester le processus sans affecter les données de production ?
Vous pouvez utiliser la licence temporaire fournie sur la page de licence temporaire pour exécuter le code dans un environnement non‑production.