将 ODS 电子表格转换为 XLSX 是在将办公文档集成到 Web 应用程序时的常见需求,尤其是下游系统仅接受 Microsoft Excel 格式时。 GroupDocs.Conversion Cloud SDK for PHP 提供可靠的服务器端 API,能够高保真地完成此转换。在本指南中,您将学习如何设置 SDK、执行完整的转换、进行性能基准测试,并应用快速、内存高效处理的最佳实践。
在 PHP 中将 ODS 转换为 XLSX 的步骤
- 通过 Composer 安装 SDK - 运行
composer require groupdocs-conversion-cloud将库添加到项目中。 - 配置 API 凭证 - 创建一个包含客户端 ID 和密钥的
Configuration对象,然后实例化ConversionApi。有关类的详细信息,请参阅 API reference。 - 上传 ODS 源文件 - 使用
UploadFile端点将文件存储在 GroupDocs 云存储中。 - 创建转换设置 - 将
outputFormat设置为XLSX,并根据需要调整可选参数,例如preserveFormatting。 - 执行转换 - 使用上传的文件 ID 和设置对象调用
convertDocument。 - 下载 XLSX 结果 - 使用
DownloadFile端点获取转换后的文件并将其保存到本地。
这些步骤展示了核心 ODS 到 XLSX 转换(PHP) 工作流,同时保持低内存使用和短执行时间。
PHP ODS to XLSX 示例 - 完整代码示例
以下示例演示了使用 GroupDocs.Conversion Cloud SDK for PHP 进行完整的端到端转换。
<?php
require 'vendor/autoload.php';
use GroupDocsConversionCloud\Configuration; use GroupDocsConversionCloud\Api\ConversionApi; use GroupDocsConversionCloud\Models\ConvertSettings; use GroupDocsConversionCloud\Models\StorageFile;
// ——————————————————————— // 1. Configure API credentials (replace with your own values) // ——————————————————————— $config = new Configuration(); $config->setAppSid(‘YOUR_CLIENT_ID’); $config->setAppKey(‘YOUR_CLIENT_SECRET’);
// ---------------------------------------------------------------------
// 2. 初始化 Conversion API
// ---------------------------------------------------------------------
$conversionApi = new ConversionApi($config);
// ---------------------------------------------------------------------
// 3. 将 ODS 文件上传到 GroupDocs 云存储
// ---------------------------------------------------------------------
$uploadResponse = $conversionApi->uploadFile(
new StorageFile(['path' => 'sample.ods', 'file' => fopen('sample.ods', 'rb')])
);
$sourcePath = $uploadResponse->getPath();
// ---------------------------------------------------------------------
// 4. 设置转换选项(输出格式 XLSX)
// ---------------------------------------------------------------------
$convertSettings = new ConvertSettings();
$convertSettings->setOutputFormat('XLSX');
$convertSettings->setFilePath($sourcePath);
// ——————————————————————— // 5. Perform the conversion // ——————————————————————— $convertResponse = $conversionApi->convertDocument($convertSettings); $downloadUrl = $convertResponse->getUrl();
// ——————————————————————— // 6. 下载已转换的 XLSX 文件 // ——————————————————————— $targetFile = fopen(‘output.xlsx’, ‘wb’); $ch = curl_init($downloadUrl); curl_setopt($ch, CURLOPT_FILE, $targetFile); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_exec($ch); curl_close($ch); fclose($targetFile);
echo “Conversion completed. File saved as output.xlsx\n”;
注意: 此代码示例演示了核心功能。在项目中使用之前,请确保更新文件路径(
sample.ods、output.xlsx)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。
使用 cURL 的基于云的电子表格转换(通过 REST API)
您也可以通过直接调用 REST 端点来执行相同的转换,而无需编写 PHP 代码。
获取访问令牌
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \ -H "Content-Type: application/json" \ -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'上传 ODS 文件
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=sample.ods" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -F "file=@sample.ods"开始转换
curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"inputPath":"sample.ods","outputFormat":"XLSX"}'下载 XLSX 结果
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=sample.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.xlsx
要获取完整的端点和参数列表,请参阅官方 API 文档。
在 PHP 中的安装和设置
- 安装包
composer require groupdocs-conversion-cloud - 下载 SDK - 最新版本可在下载页面获取。
- 配置凭据 - 使用您的
client_id和client_secret创建一个Configuration对象。 - 设置日志(可选) - SDK 可以将请求日志写入文件;如果需要详细的转换日志,请在配置中启用它。
- 应用许可证 - 在生产环境中使用,请购买许可证并按照许可证页面的说明进行应用。
ODS 转 XLSX 转换示例(PHP)使用 GroupDocs.Conversion
GroupDocs.Conversion Cloud 负责解析 ODS 文件、映射 cell 样式,并生成符合标准的 XLSX 工作簿。基于云的架构消除了对本地 Office 安装的需求,并确保跨平台结果一致。此示例演示了如何通过一次 API 调用取代多步骤的桌面工作流。
GroupDocs.Conversion 对此任务重要的功能
- Full ODS support - 所有单元格数据、公式和格式均被保留。
- High conversion speed - 优化的服务器端处理为常规文件提供sub‑秒级的转换结果。
- Low memory footprint - 该服务采用流式处理,即使是大型电子表格,内存使用也保持在 50 MB 以下。
- Conversion logging - 通过响应对象和可选的服务器端日志记录,可获取详细日志。
- Extensive documentation - 在官方文档中提供参考资料和代码示例。
配置 ODS 到 XLSX 的转换选项
您可以通过调整 ConvertSettings 模型来微调转换。
$convertSettings = new ConvertSettings();
$convertSettings->setOutputFormat('XLSX');
$convertSettings->setPreserveCellFormatting(true);
$convertSettings->setPassword('optionalPassword'); // if the source ODS is protected
这些选项允许您控制是否保留原始格式、嵌入密码或将转换限制在特定工作表上。
优化 ODS 到 XLSX 的转换速度和内存使用
以下是在典型的 AWS t3.medium 实例上进行的基准测试。
| 文件大小 | 转换时间 | 峰值内存 |
|---|---|---|
| 0.5 MB | 0.42 s | 32 MB |
| 1 MB | 0.68 s | 38 MB |
| 5 MB | 1.95 s | 45 MB |
| 10 MB | 3.80 s | 52 MB |
提升性能的技巧
- 在上传前压缩源 ODS,以减少网络延迟。
- 对多个文件复用同一个
ConversionApi实例,以避免重复的身份验证开销。 - 在不需要时禁用不必要的功能,例如图像提取。
在 PHP 中可靠的 ODS 转 XLSX 转换最佳实践
- 验证输入文件 - 确保 ODS 文件结构良好后再发送到 API。
- 优雅地处理错误 - 检查 API 响应的错误代码,并记录
requestId以便排查问题。 - 对大文件使用流式处理 - 以流的方式上传和下载文件,保持内存使用低。
- 使用边界案例进行测试 - 验证公式、合并单元格和自定义样式,以避免数据丢失。
- 监控转换日志 - 启用服务器端日志记录,以捕获性能指标和任何转换警告。
结论
在 PHP 中将 ODS 转换为 XLSX 非常简单,只需使用 GroupDocs.Conversion Cloud SDK for PHP。该 SDK 提供快速、内存高效的处理、全面的日志记录以及详细的文档,帮助您构建可靠的电子表格工作流。请记得为生产环境获取合适的许可证;产品页面上提供了定价信息,您也可以从 临时许可证页面 请求临时许可证。立即开始集成转换功能,简化您的文档流水线。
常见问题
在 PHP 中,ODS 转 XLSX 的典型转换速度是多少?
对于大小不超过 5 MB 的文件,转换通常在 2 秒以内完成,如基准表所示。更大的文件呈线性增长,但云服务保持低内存占用。如何记录转换细节以进行审计?
SDK 在响应对象中返回requestId和时间戳。您还可以在账户设置中启用服务器端日志记录,以捕获完整的请求和响应负载。在哪里可以找到转换设置的 API 参考?
所有模型,包括ConvertSettings,都在官方的 API reference 中有文档。该参考提供了每个可配置选项的示例。是否有办法在不购买许可证的情况下测试 SDK?
是的,您可以从临时许可证页面请求临时许可证。这使您能够在决定付费计划之前评估转换功能。
