Việc tự động chuyển đổi dữ liệu có cấu trúc thành các tài liệu được định dạng tinh tế là nhu cầu thường gặp cho các dịch vụ backend. Aspose.Cells Cloud SDK for Node.js cho phép các nhà phát triển làm việc với sổ làm việc Excel và chuyển đổi chúng sang nhiều định dạng khác nhau thông qua một REST API mạnh mẽ. Trong hướng dẫn này, bạn sẽ học cách nhập dữ liệu XML sang PDF bằng SDK, bao gồm mọi thứ từ xác thực đến tải lên tệp, ánh xạ XML và tạo PDF.
Các yêu cầu và Cài đặt
Trước khi bắt đầu, hãy đảm bảo bạn có những thứ sau:
- Node.js 14 hoặc cao hơn được cài đặt trên máy của bạn.
- Một tài khoản Aspose Cloud với client ID và client secret.
- Truy cập vào terminal hoặc IDE nơi bạn có thể chạy các script Node.js.
Cài đặt Aspose.Cells Cloud SDK for Node.js:
npm install asposecellscloud
Tiếp theo, cấu hình thông tin xác thực của bạn. Đoạn mã sau được lấy trực tiếp từ triển khai tham chiếu:
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);
Bạn cũng sẽ cần tải xuống gói SDK từ trang phát hành chính thức: Aspose.Cells Cloud SDK for Node.js Tải xuống. Với các điều kiện tiên quyết đã sẵn sàng, chúng ta có thể chuyển sang triển khai thực tế.
Nhập dữ liệu XML vào PDF trong Node.js: Hướng dẫn từng bước
Bước 1: Tải các mô-đun cần thiết và tạo API Client
Đầu tiên, nhập các mô-đun cần thiết và khởi tạo 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);
Bước 2: Định nghĩa hàm trợ giúp cho việc tải lên tệp
Tạo một hàm có thể tái sử dụng để tải lên một tệp cục bộ lên lưu trữ Aspose Cloud.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
Bước 3: Tải lên Workbook và tệp XML
Tải lên mẫu Excel và tệp dữ liệu XML vào thư mục Temp trong lưu trữ đám mây.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
Bước 4: Nhập dữ liệu XML vào Bảng tính
Ánh xạ tệp XML lên bảng tính đích. Đây là phần cốt lõi của quy trình import XML data to PDF.
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
Bước 5: Chuyển đổi Workbook đã cập nhật sang PDF và Tải xuống
Cuối cùng, lưu workbook dưới dạng PDF và lấy lại tệp.
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);
Với các bước này đã hoàn thành, dữ liệu XML đã được nhập thành công và tệp PDF kết quả đã sẵn sàng để sử dụng.
Ví dụ mã hoàn chỉnh: Nhập dữ liệu XML vào PDF với chú thích chi tiết
Đoạn mã sau đây trình bày quy trình toàn bộ từ đầu đến cuối.
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);
}
})();
Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.
Chuyển đổi XML sang PDF bằng cURL và REST API
Dưới đây là quy trình dựa trên cURL thực hiện các thao tác tương tự mà không cần viết bất kỳ mã Node.js nào.
- Lấy token truy cập
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ải lên mẫu 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ải lên tệp dữ liệu 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"
- Nhập XML vào bảng tính
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
}'
- Chuyển đổi sổ làm việc sang 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ải xuống PDF đã tạo
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Để xem danh sách đầy đủ các tham số và các tùy chọn bổ sung, xem Tham chiếu API.
Tinh chỉnh các tùy chọn XML sang PDF
Hoạt động nhập khẩu cung cấp một số cờ cho phép bạn kiểm soát cách dữ liệu XML được hợp nhất:
- importDataOnly - Khi được đặt thành
true, chỉ các hàng dữ liệu sẽ được nhập, để nguyên định dạng hiện có. - importDataOnlySpecified - Phải được đặt thành
truecùng vớiimportDataOnlyđể kích hoạt tùy chọn này. - xmlMapIndex - Chọn bản đồ XML nào (nếu có nhiều bản đồ được định nghĩa) sẽ được sử dụng cho việc nhập.
Các tùy chọn này đã được trình bày trong đối tượng importXmlRequest đã sử dụng trước đó:
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
Bạn cũng có thể điều chỉnh các cài đặt đặc thù cho PDF như kích thước trang, hướng và chất lượng hình ảnh bằng cách truyền một đối tượng PdfSaveOptions vào phương thức saveWorkbook. Tham khảo API reference để biết danh sách đầy đủ các tùy chọn có sẵn.
Kết luận
Bằng cách làm theo hướng dẫn này, bạn đã có một giải pháp hoàn chỉnh cho import XML data to PDF sử dụng Aspose.Cells Cloud SDK for Node.js. Cách tiếp cận kết hợp các lời gọi SDK đơn giản với các lệnh cURL tùy chọn, mang lại cho bạn sự linh hoạt dù bạn muốn triển khai Node.js toàn diện hay tích hợp REST nhẹ. Hãy nhớ bảo mật thông tin xác thực client của bạn và cân nhắc áp dụng giấy phép tạm thời hoặc trả phí cho các tải công việc sản xuất. Bạn có thể lấy giấy phép tạm thời từ trang giấy phép tạm thời và khám phá các tùy chọn giá trên trang sản phẩm. Chúc lập trình vui vẻ!
FAQs
-
Làm thế nào để nhập dữ liệu XML vào PDF hoạt động với Aspose.Cells Cloud SDK cho Node.js?
SDK tải lên mẫu Excel và tệp XML của bạn lên lưu trữ Aspose Cloud, ánh xạ dữ liệu XML vào một worksheet, và sau đó lưu workbook dưới dạng PDF. Xem Aspose.Cells Cloud SDK for Node.js để tham khảo chi tiết API. -
Tôi có thể tùy chỉnh đầu ra PDF khi sử dụng nhập dữ liệu XML vào PDF không?
Có, phương thứcsaveWorkbookchấp nhận các tùy chọn đặc thù cho định dạng như hướng trang, chất lượng hình ảnh và mức độ nén. Điều chỉnh các cài đặt này trong payload của yêu cầu như mô tả trong API reference. -
Phương pháp xác thực nào được yêu cầu cho các cuộc gọi REST?
Tất cả các yêu cầu phải bao gồm một token truy cập OAuth 2.0 được lấy từ endpoint xác thực Aspose Cloud. Sử dụng client ID và client secret của bạn để yêu cầu token trước khi gọi bất kỳ API nào. -
Có cách nào để kiểm tra quy trình mà không ảnh hưởng đến dữ liệu sản xuất không?
Bạn có thể sử dụng giấy phép tạm thời được cung cấp tại trang giấy phép tạm thời để chạy mã trong môi trường không‑sản xuất.