> 无需本地安装Excel。无需维护转换服务器。将XLSX → PDF、Excel → CSV/JSON/图像/HTML转换为简单的REST调用——并在大约三分钟内运行您的第一个“云电子表格转换器”。 “将电子表格转换为不同格式”是日常开发中最常见的需求之一: - 财务和法律团队希望获得只读、不可篡改的PDF报告,而不是任何人都可以编辑的.xlsx; - 数据团队需要将表格数据提取到下游系统作为CSV / JSON; - Web和移动应用希望将工作表——甚至图表——直接渲染为PNG / SVG; - 门户网站希望嵌入干净的HTML / HTML-Table片段; - 有人需要将一堆.xls / .xlsx / .csv / .ods文件标准化为一种格式。 传统的解决方案——本地安装Excel并使用宏,或在您自己的服务器上使用重量级COM组件——难以扩展且难以保持跨平台。Aspose.Cells Cloud用一个纯REST API替代了所有这些:上传文件,获取新格式文件。 本文将介绍Aspose.Cells Cloud微服务中核心ConversionController暴露的三个转换API(源:src/Aspose.Cells.Cloud.MicroService/Controllers/ConversionController.cs),并提供cURL、C#(.NET)、Python和Java的可运行示例。 — ## 1. Convert功能可以做什么? ConversionController是专门用于_格式转换/导出_的控制器。它将引擎级的高保真转换封装为三组HTTP API: | # | 场景 | 典型端点 | 功能 | | — | ———————————————————— | ———————————————— | —————————————————————————————————————————- | | 1 | 云存储中的文件 → 下载新格式 | GET /v4.0/cells/{name}?format=pdf | 直接在云存储中转换工作簿并流回结果——大型文件无需传输到您的机器 | | 2 | 本地文件 → 在线转换(主要功能) | PUT /v4.0/cells/convert/spreadsheet?format=pdf | 您在请求体中上传文件(多部分);服务器转换并直接返回结果文件 | | 3 | 云文件 → 另存为新格式,回写云存储 | PUT /v4.0/cells/{name}/saveas?format=pdf | 转换后的文件直接写回云存储——非常适合自动化管道 | > 实现说明:源路由使用前缀v{version}/cells,API版本为4.0,因此实时调用看起来像https://api.aspose.cloud/v4.0/cells/...。 ### 转换粒度远超“整个文件” 除了转换整个工作簿,控制器还可以导出_单个元素_: - 特定工作表 → PDF / 图像 / CSV / JSON / HTML - 特定单元格范围(例如A1:C12) → PDF / 图像 / CSV / JSON / HTML - 特定表格 → PDF / 图像 / CSV / JSON / HTML - 特定图表 → PNG / JPEG / BMP / GIF / SVG / TIFF / EMF / PDF 因此,您无需仅为获取一个图表而转换整个50 MB的工作簿——仅转换所需内容,节省带宽和计算资源。 — ## 2. 支持哪些格式? 根据控制器中的内置ExportData注册,转换矩阵大致如下: | 类型 | 格式 | | —————————————– | ———————————————————————————————————————- | | 导入和导出(双向) | XLS、XLSX、XLSB、XLSM、CSV、TSV、ODS、TXT | | 仅导出 | PDF、OTS、XPS、DIF、HTML / MHTML、JSON、PNG、JPEG、BMP、SVG、TIFF、EMF、NUMBERS、FODS、Markdown、DOCX、PPTX、SQL等。 | 简而言之:电子表格到电子表格的各种转换,加上电子表格 → PDF / 图像 / 网络数据输出的整个系列——所有这些都在一个API接口后面。 — ## 3. 开始之前需要的两件事 1. 在Aspose Cloud Dashboard上注册一个免费账户并创建一个应用程序,以获取Client ID和Client Secret(SDK会自动将其交换为JWT——无需自己构建身份验证头)。 2. 安装您选择的语言的SDK: xml <!-- .NET --> <PackageReference Include="Aspose.Cells-Cloud" Version="25.x" /> bash # Python pip install asposecellscloud xml <!-- Java(Maven)——注意:不在Maven Central上,因此需要下面的Aspose仓库 --> <repositories> <repository> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://repository.aspose.cloud/repo/</url> </repository> </repositories> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-cells-cloud</artifactId> <version>26.8</version> </dependency> > 不需要SDK?一切都是纯REST,因此cURL同样有效(见下文)。 — ## 4. 场景1:在线转换本地Excel文件(主要转换API) 这是PUT /v4.0/cells/convert/spreadsheet——旗舰“转换”API: 在请求体中上传您的本地文件,服务器转换并流回新文件。没有任何内容保留在云存储中,也没有上传副本残留——非常适合“只需为我转换这个”的时刻。 ### ① cURL bash # 1) 首先,获取令牌 curl -X POST "https://api.aspose.cloud/connect/token" \ -d "grant_type=client_credentials" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" # 2) XLSX -> PDF curl -X PUT "https://api.aspose.cloud/v4.0/cells/convert/spreadsheet?format=pdf" \ -H "Authorization: Bearer $TOKEN" \ -F "file=@Book1.xlsx" \ -o Book1.pdf 将format替换为csv、json、png、xlsx……您将获得该格式。一个参数,一个输出格式。 ### ② C# / .NET csharp using Aspose.Cells.Cloud.SDK.Api; using Aspose.Cells.Cloud.SDK.Request; var cellsApi = new CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET"); var request = new ConvertSpreadsheetRequest( spreadsheet: "C:/invoices/Book1.xlsx", // 本地文件路径 format: "pdf"); // 目标:pdf / csv / json / png ... using Stream result = cellsApi.ConvertSpreadsheet(request); // 转换后的文件流 using var outFile = File.Create("C:/invoices/Book1.pdf"); result.CopyTo(outFile); // 更简单:将SDK指向输出路径,让它写入文件 // cellsApi.ConvertSpreadsheet(request, "C:/invoices/Book1.pdf"); > 需要批处理作业?将其放入循环中,您就可以实现“将整个文件夹转换为XLSX → PDF”。 ### ③ Python python from asposecellscloud.apis.cells_api import CellsApi from asposecellscloud.requests import ConvertSpreadsheetRequest import os instance = CellsApi( os.getenv('CellsCloudClientId'), os.getenv('CellsCloudClientSecret')) # 本地XLSX -> PDF,结果写入本地 instance.convert_spreadsheet( ConvertSpreadsheetRequest("Book1.xlsx", "pdf"), local_outpath="Book1.pdf") # 其他格式:只需更改参数——json / csv / xlsx / png ... ### ④ Java java import com.aspose.cloud.cells.api.CellsApi; import com.aspose.cloud.cells.request.ConvertSpreadsheetRequest; import java.io.File; public class ConvertDemo { public static void main(String[] args) throws Exception { CellsApi api = new CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET"); ConvertSpreadsheetRequest req = new ConvertSpreadsheetRequest(); req.setSpreadsheet("C:/invoices/Book1.xlsx"); // 本地文件路径 req.setFormat("pdf"); // 目标:pdf / csv / json / png ... File out = api.convertSpreadsheet(req); // 转换结果作为文件 out.renameTo(new File("C:/invoices/Book1.pdf")); System.out.println("已转换: " + out.getAbsolutePath()); } } 四种语言,一项操作:给出路径 + 格式参数 → 获取目标文件。这就是转换API的全部卖点——调用方侧零Excel依赖,无需模板,无需COM组件。 — ## 5. 场景2:直接转换云存储的文件 当文件已经存在于Aspose Cloud Storage(或您的对象存储)中时,您无需下载/上传大型文件——转换发生在云中,最小化数据传输并提高大型工作簿的性能: bash # 云Book1.xlsx -> PDF,下载到本地 curl -G "https://api.aspose.cloud/v4.0/cells/Book1.xlsx" \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "format=pdf" \ --data-urlencode "folder=Reports" \ -o Book1.pdf python from asposecellscloud.apis.cells_api import CellsApi from asposecellscloud.requests import ExportSpreadsheetAsFormatRequest instance = CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET") # 将云存储的工作簿直接转换为PDF instance.export_spreadsheet_as_format( ExportSpreadsheetAsFormatRequest("Book1.xlsx", format="pdf", folder="Reports")) 您还可以深入到单个元素——例如,将“Sheet1上的第3个图表”渲染为PNG(云存储版本): bash # 图表 -> PNG curl -G "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Sheet1/charts/2" \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "format=png" \ -o chart.png 云端粒度端点一览: | 目标 | 端点 | 示例format | | —————- | ——————————————————- | —————————– | | 整个工作簿 | GET /v4.0/cells/{name} | pdf / xlsx / csv / json | | 单个工作表 | GET /v4.0/cells/{name}/worksheets/{ws} | pdf / png / svg | | 单个范围 | GET /v4.0/cells/{name}/worksheets/{ws}/ranges/{range} | pdf / csv / json / html / png | | 单个表格 | GET /v4.0/cells/{name}/worksheets/{ws}/tables/{table} | pdf / csv / json / html / png | | 单个图表 | GET /v4.0/cells/{name}/worksheets/{ws}/charts/{index} | pdf / png / jpeg / svg / tiff | — ## 6. 场景3:SaveAs——将结果写回云存储 当您希望将转换后的文件保留回云存储(而不是下载)时,请使用PUT /v4.0/cells/{name}/saveas。这非常适合自动化,例如“每天将今天的报告导出为PDF以进行归档”: bash curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/saveas?format=pdf" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{}' python from asposecellscloud.apis.cells_api import CellsApi from asposecellscloud.requests import SaveSpreadsheetAsRequest instance = CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET") instance.save_spreadsheet_as( SaveSpreadsheetAsRequest("Book1.xlsx", format="pdf", folder="Reports")) # 结果直接保存在云存储中;返回CellsCloudResponse(Code=200, Status="OK") 您可以通过SaveOptionsData请求体传递细粒度的保存选项,并通过查询参数控制输出文件名、输出存储、自定义字体、区域/区域、密码等——更多内容将在下面的_工程细节_中介绍。 — ## 7. 更多现成的“在线转换”端点 除了上述工作簿级转换,控制器还提供了一整套专用的本地文件 → 特定目标端点(与场景1相同的请求体上传),这些端点更细粒度且更节省带宽: | 目标 | 端点(PUT,前缀/v4.0/cells/convert/) | | ———————————————— | ——————————————————————————————————– | | 工作簿 → PDF / JSON / CSV | spreadsheet/pdf、spreadsheet/json、spreadsheet/csv | | 工作表 → PDF / JSON / CSV / HTML / HTML-Table | worksheet/pdf、worksheet/json、worksheet/csv、worksheet/html、worksheet/html-table | | 工作表 → 图像 | worksheet/image?worksheet=Sheet1&format=png | | 范围 → PDF / CSV / HTML / JSON / 图像 | range/pdf、range/csv、range/html、range/json、range/image?worksheet=..&range=A1:C12&format=png | | 表格 → PDF / CSV / HTML / JSON / 图像 | table/pdf、table/csv、table/html、table/json、table/image | | 图表 → 图像 / PDF | chart/image?worksheet=..&chartIndex=0&format=png、chart/pdf | 例如,“仅将此范围导出为CSV以供下游系统使用”: bash curl -X PUT "https://api.aspose.cloud/v4.0/cells/convert/range/csv" \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "worksheet=Sheet1" \ --data-urlencode "range=A1:C100" \ -F "file=@data.xlsx" \ -o data.csv 这些端点使用与convert/spreadsheet相同的请求体上传模式。在.NET SDK中,图表案例具有映射到这些v4.0路由的类型包装器——ConvertChartToImage(convert/chart/image)和ConvertChartToPdf(convert/chart/pdf)。worksheet/*、range/*和table/*变体尚未有v4.0包装器,因此请像上面的cURL一样通过纯REST调用它们。 — ## 8. 工程细节与错误处理 ### 值得了解的转换选项(查询参数) - password — 打开受密码保护的工作簿; - fontsLocation / 自定义字体支持 — 在渲染PDF/图像时保持字形正确; - 自动调整行/列,以及是否打印行/列标题(printHeadings)、区域/页面设置(region)等; - 输出侧:outPath / outStorageName决定结果在云存储中的位置。 ### 错误代码(控制器文档的合同) | 状态 | 意义 | 典型原因 | | ——- | ———— | ———————————————————– | | 400 | 错误请求 | 无效的URL / 参数,或不支持的format | | 401 | 未授权 | 身份验证失败或未提供有效凭据 | | 404 | 未找到 | 源文件在云存储中不可访问 | | 500 | 服务器错误 | 服务在获取转换数据时遇到异常 | ### 身份验证 所有SDK都使用OAuth 2.0 client_credentials和JWT自动进行身份验证;使用原始cURL时,首先调用/connect/token一次(见场景1,①上)。 — ## 9. 为什么选择Aspose.Cells Cloud Convert? - ✅ 零本地依赖 — 无需Office/Excel,无需COM。可以从任何语言和任何平台(Linux、容器、无服务器)调用; - ✅ 高保真渲染 — 由Aspose.Cells引擎提供支持,因此公式、图表、样式和分页以专业质量渲染为PDF/图像; - ✅ 云原生 — 文件在转换期间可以保留在云中,以避免传输大型负载;纯在线转换根本不需要云存储; - ✅ 灵活的粒度 — 工作簿/工作表/范围/表格/图表:准确转换您所需的部分; - ✅ 跨SDK的一致性 — cURL、.NET、Python和Java示例一一对应,因此您可以直接复制您喜欢的模式。 立即开始:在Aspose Cloud Dashboard上注册,创建一个应用程序,将您的凭据放入上面的任何代码片段中,然后运行——您将在几分钟内拥有自己的“云Excel转换器”。 觉得这有用吗?给我们点赞、收藏或分享——并在评论中告诉我们您自己的电子表格转换用例。