
使用 Node.js 将 Excel 转换为 PDF
Excel 是用于存储计算数据的流行文件格式之一。它能够存储数字和公式、文本和图形等数据。此外,Excel 是 Microsoft Office 软件套件的一部分,因此许多用户使用它来生成 XLS 文件。此外,由于它能够将数据存储在按编号行和字母命名列排列的单元格网格中,以组织算术运算等数据操作,因此它变得非常流行。但要查看这些文件,您需要安装特定的应用程序。此外,不同版本的软件以不同的格式显示文件。因此,为了解决所有这些问题,将文件转换为 PDF 格式是一个可行的解决方案,因为大多数桌面上的 Web 浏览器和移动设备上的各种免费应用程序都可以方便地显示 PDF 文档。
在本文中,我们将讨论使用 Cloud REST API 将 Excel 转换为 PDF。
Excel 到 PDF 转换 API
Aspose.Cells Cloud 是我们屡获殊荣的 REST API,它提供从头开始创建 Excel 文件、编辑现有文件中的内容以及将文件呈现为 XLSM、HTML、XPS、TIFF、SVG 等格式的功能。因此,根据本文的范围,我们将使用 Aspose.Cells Cloud SDK for Node.js。
使用 cURL 命令将 Excel 转换为 PDF
在本节中,我们将使用 cURL 命令将 Excel 保存为 PDF 格式。因此,第一步是在 Aspose.Cloud 仪表板 上创建免费帐户订阅。如果您有 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。登录仪表板以访问您的客户端凭据。
现在,请执行以下命令来生成 JWT 访问令牌。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
一旦我们有了 JWT 令牌,我们需要执行以下 cURL 命令将文件从本地系统上传到云存储,然后执行转换为 PDF 格式。
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/conditional.xls" \
-H "accept: application/json"
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: multipart/form-data" \
-d {"File":{}}
https://api.aspose.cloud/v3.0/cells/storage/file/conditional.xlsx
如果您需要将云存储中已有的 XLS 文件转换为 PDF 格式,请尝试使用以下 cURL 命令:
curl -X GET "https://api.aspose.cloud/v3.0/cells/conditional.xls?format=PDF&isAutoFit=true&onlySaveTable=false&outPath=output.pdf" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
在 Node.js 中将 XLS 转换为 PDF

在本节中,我们将讨论如何使用 Node.js SDK 将 Excel 工作表转换为 PDF 格式的步骤和细节。第一步是在本地系统上安装 SDK,可在 NPM 和 GitHub 下载。因此,我们将运行以下命令从 NPM 安装 SDK
npm i asposecellscloud
安装后,我们可以执行以下代码片段,使用 Node.js 将 XLS 转换为 PDF
- 创建定义客户端 ID 和客户端机密详细信息的对象。
- 然后创建一个 CellsApi 类的对象,该对象以客户端 ID 和客户端机密详细信息作为参数。
- 下一步是使用文件系统模块的 createReadStream(…) 方法读取本地系统上可用的输入 XLS 文件的内容。
- 现在创建 UploadFileRequest 类的一个实例,然后将输入流数据传递给文件属性。
- 为了将文件上传到云存储,请调用CellsApi的uploadFile(…)方法。
- 下一步是创建 CellsSaveAsPostDocumentSaveAsRequest(…) 类的对象。
- 此外,创建 PdfSaveOptions 类的实例并将 PDF 的值传递给 saveFormat 属性。
- 最后,调用 CellsApi 类的 cellsSaveAsPostDocumentSaveAs(..) 方法启动转换过程。
const { CellsApi, CellsSaveAs_PostDocumentSaveAsRequest,UploadFileRequest,PdfSaveOptions } = require("asposecellscloud");
// 从 https://dashboard.aspose.cloud 获取您的 ClientId 和 ClientSecret(需要免费注册)。
const clientId = "718e4235-8866-4ebe-bff4-f5a14a4b6466";
const clientSecret = "388e864b819d8b067a8b1cb625a2ea8e";
// 创建 CellsApi 实例
const cellsApi = new CellsApi(clientId, clientSecret);
// 输入Excel文档的名称
filename = "conditional.xlsx"
// 在代码中包含文件系统模块引用
const fs = require("fs");
// 读取输入 Excel 文件的内容
var data =fs.createReadStream("/Users/nayyershahbaz/Downloads/"+ filename);
// 创建 FileUpload 请求实例
var req = new UploadFileRequest();
req.path = filename;
// 将内容设置为包含已加载 Excel 文件的 Stream 实例
req.file = data;
// 将文件上传至云存储
return cellsApi.uploadFile(req)
.then((result) => {
// 创建文档 SaveAsRequest 实例
var req = new CellsSaveAs_PostDocumentSaveAsRequest();
req.name = filename;
// 创建 PdfSaveOptions 类的对象
req.saveOptions = new PdfSaveOptions();
// 将结果文件格式设置为 PDF
req.saveOptions.saveFormat = "pdf";
// 设置新结果文件的名称
req.newfilename = "newbook.pdf";
// 因为我们要保存在默认位置,所以我们将文件夹值设置为 null
req.folder = null;
// 调用 SaveAsPostDocument 方法启动转换过程
return cellsApi.cellsSaveAsPostDocumentSaveAs(req)
.then((result) => {
expect(result.body.code).to.equal(200);
expect(result.response.statusCode).to.equal(200);
});
});
结论
在本文中,我们以简单方便的方式讨论了有关将 Excel 转换为 PDF 格式的详细信息。请注意,Aspose.Cells Cloud SDK for Node.js 是根据开源原则开发的,因此完整的源代码可在 GitHub 下载。如果您在使用 API 时遇到任何问题或有任何相关疑问,请随时通过 免费产品支持论坛 提问。
相关文章
您可以考虑访问以下链接以了解更多信息