การทำอัตโนมัติของการแปลงข้อมูลเชิงโครงสร้างเป็นเอกสารที่สวยงามเป็นความต้องการที่พบบ่อยสำหรับบริการแบ็กเอนด์. Aspose.Cells Cloud SDK for Node.js ช่วยให้นักพัฒนาสามารถทำงานกับเวิร์กบุ๊ก Excel และแปลงเป็นรูปแบบต่าง ๆ ผ่าน REST API ที่ทรงพลัง. ในคู่มือนี้คุณจะได้เรียนรู้วิธี นำเข้าข้อมูล XML ไปยัง PDF ด้วย SDK รวมถึงทุกขั้นตอนตั้งแต่การรับรองความถูกต้องจนถึงการอัปโหลดไฟล์, การแมป XML, และการสร้าง PDF.
ข้อกำหนดเบื้องต้นและการตั้งค่า
ก่อนที่คุณจะเริ่มต้น โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้:
- Node.js 14 หรือสูงกว่าที่ติดตั้งบนเครื่องของคุณ.
- บัญชี Aspose Cloud พร้อม client ID และ client secret.
- การเข้าถึงเทอร์มินัลหรือ IDE ที่คุณสามารถเรียกใช้สคริปต์ Node.js ได้.
ติดตั้ง Aspose.Cells Cloud SDK for Node.js:
npm install 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);
คุณจะต้องดาวน์โหลดแพคเกจ SDK จากหน้าปล่อยอย่างเป็นทางการ: Aspose.Cells Cloud SDK for Node.js Download. เมื่อมีการเตรียมความพร้อมแล้ว เราสามารถไปสู่การดำเนินการจริงได้
นำเข้า XML Data ไปยัง PDF ใน Node.js: คู่มือแบบขั้นตอนต่อขั้นตอน
ขั้นตอนที่ 1: โหลดโมดูลที่จำเป็นและสร้าง API Client
ก่อนแรก ให้นำเข้าโมดูลที่จำเป็นและสร้างอินสแตนซ์ของ API client.
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);
ขั้นตอน 2: กำหนดฟังก์ชันช่วยเหลือสำหรับการอัปโหลดไฟล์
สร้างฟังก์ชันที่สามารถนำกลับมาใช้ใหม่ได้ซึ่งอัปโหลดไฟล์ในเครื่องไปยัง Aspose Cloud storage.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
ขั้นตอนที่ 3: อัปโหลดเวิร์กบุ๊กและไฟล์ XML
อัปโหลดเทมเพลต Excel และไฟล์ข้อมูล XML ไปยังโฟลเดอร์ Temp ในที่เก็บข้อมูลบนคลาวด์.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
ขั้นตอนที่ 4: นำเข้า XML Data ไปยังแผ่นงาน
แมปไฟล์ XML ไปยังแผ่นงานเป้าหมาย นี่คือหัวใจของกระบวนการทำงาน นำเข้า XML data ไปยัง PDF
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
ขั้นตอนที่ 5: แปลงเวิร์กบุ๊กที่อัปเดตเป็น PDF และดาวน์โหลด
สุดท้าย ให้บันทึกเวิร์กบุ๊กเป็น PDF และดึงไฟล์ออกมา
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);
เมื่อทำตามขั้นตอนเหล่านี้เสร็จแล้ว ข้อมูล XML จะถูกนำเข้าอย่างสำเร็จและ PDF ที่ได้พร้อมใช้งาน
ตัวอย่างโค้ดเต็ม: นำเข้าข้อมูล XML ไปยัง PDF พร้อมคำอธิบายโดยละเอียด
โค้ดต่อไปนี้แสดงกระบวนการแบบครบวงจรตั้งแต่ต้นจนจบ.
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);
}
})();
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ โปรดตรวจสอบให้แน่ใจว่าได้อัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ติดตั้งอย่างถูกต้อง และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ
การแปลง XML เป็น PDF ด้วย cURL และ REST API
ด้านล่างเป็นเวิร์กโฟลว์แบบ cURL ที่ทำงานเดียวกันโดยไม่ต้องเขียนโค้ด Node.js ใดๆ
- รับโทเค็นการเข้าถึง
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"
- อัปโหลดเทมเพลต 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"
- อัปโหลดไฟล์ข้อมูล 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"
- นำเข้า XML ไปยังแผ่นงาน
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
}'
- แปลงสมุดงานเป็น 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"
- ดาวน์โหลด 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
สำหรับรายการพารามิเตอร์ทั้งหมดและตัวเลือกเพิ่มเติม, ดูที่ อ้างอิง API.
การปรับแต่งละเอียดของตัวเลือก XML เป็น PDF
การดำเนินการนำเข้ามีหลายแฟล็กที่ให้คุณควบคุมวิธีการรวมข้อมูล XML:
- importDataOnly - เมื่อกำหนดค่าเป็น
trueจะนำเข้าเฉพาะแถวข้อมูลเท่านั้น โดยไม่กระทบต่อการจัดรูปแบบที่มีอยู่ - importDataOnlySpecified - ต้องกำหนดค่าเป็น
trueพร้อมกับimportDataOnlyเพื่อเปิดใช้งานตัวเลือกนี้ - xmlMapIndex - เลือกแผนที่ XML (หากมีหลายแผนที่ที่กำหนด) ที่จะใช้สำหรับการนำเข้า
ตัวเลือกเหล่านี้ได้ถูกสาธิตไว้แล้วในอ็อบเจ็กต์ importXmlRequest ที่ใช้ก่อนหน้านี้:
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
คุณยังสามารถปรับการตั้งค่าเฉพาะ PDF เช่น ขนาดหน้า, แนวตั้ง, และคุณภาพภาพโดยการส่งอ็อบเจ็กต์ PdfSaveOptions ไปยังเมธอด saveWorkbook ได้อีกด้วย. ดูที่ อ้างอิง API สำหรับรายการตัวเลือกทั้งหมดที่มีให้.
สรุป
โดยทำตามบทแนะนำนี้ คุณจะมีโซลูชันครบถ้วนสำหรับ import XML data to PDF โดยใช้ Aspose.Cells Cloud SDK for Node.js วิธีการนี้รวมการเรียก SDK อย่างง่ายกับคำสั่ง cURL ทางเลือก ให้ความยืดหยุ่นไม่ว่าคุณจะชอบการทำงานแบบเต็มสแตก Node.js หรือการรวม REST แบบเบา จำไว้ว่าต้องรักษาข้อมูลประจำตัวของลูกค้าให้ปลอดภัยและพิจารณาใช้ใบอนุญาตชั่วคราวหรือแบบชำระเงินสำหรับงานผลิต คุณสามารถรับใบอนุญาตชั่วคราวได้จาก หน้าลิขสิทธิ์ชั่วคราว และสำรวจตัวเลือกการกำหนดราคาในหน้าผลิตภัณฑ์ ขอให้สนุกกับการเขียนโค้ด!
คำถามที่พบบ่อย
-
การนำเข้าข้อมูล XML ไปยัง PDF ทำงานอย่างไรกับ Aspose.Cells Cloud SDK for Node.js?
SDK จะอัปโหลดเทมเพลต Excel และไฟล์ XML ของคุณไปยัง Aspose Cloud storage, ทำการแมปข้อมูล XML ไปยังแผ่นงาน, แล้วบันทึกเวิร์กบุ๊กเป็น PDF. ดู Aspose.Cells Cloud SDK for Node.js สำหรับอ้างอิง API รายละเอียด. -
ฉันสามารถปรับแต่งผลลัพธ์ PDF เมื่อใช้การนำเข้า XML ไปยัง PDF ได้หรือไม่?
ใช่, เมธอดsaveWorkbookยอมรับตัวเลือกเฉพาะรูปแบบ เช่น การจัดแนวหน้า, คุณภาพภาพ, และระดับการบีบอัด ปรับการตั้งค่าเหล่านี้ใน payload ของคำขอตามที่อธิบายใน อ้างอิง API -
What authentication method is required for the REST calls?
ทุกคำขอจะต้องรวมโทเค็นการเข้าถึง OAuth 2.0 ที่ได้รับจากจุดสิ้นสุดการตรวจสอบสิทธิ์ของ Aspose Cloud ใช้ client ID และ client secret ของคุณเพื่อขอโทเค็นก่อนเรียกใช้ API ใด ๆ -
มีวิธีใดในการทดสอบกระบวนการโดยไม่กระทบต่อข้อมูลการผลิตหรือไม่?
คุณสามารถใช้ใบอนุญาตชั่วคราวที่ให้ไว้ใน หน้าใบอนุญาตชั่วคราว เพื่อเรียกใช้โค้ดในสภาพแวดล้อมที่ไม่ใช่การผลิตได้