ODS 电子表格转换为 XLSX 是在将办公文档集成到 Web 应用程序时的常见需求,尤其是下游系统仅接受 Microsoft Excel 格式时。 GroupDocs.Conversion Cloud SDK for PHP 提供可靠的服务器端 API,能够高保真地完成此转换。在本指南中,您将学习如何设置 SDK、执行完整的转换、进行性能基准测试,并应用快速、内存高效处理的最佳实践。

PHP 中将 ODS 转换为 XLSX 的步骤

  1. 通过 Composer 安装 SDK - 运行 composer require groupdocs-conversion-cloud 将库添加到项目中。
  2. 配置 API 凭证 - 创建一个包含客户端 ID 和密钥的 Configuration 对象,然后实例化 ConversionApi。有关类的详细信息,请参阅 API reference
  3. 上传 ODS 源文件 - 使用 UploadFile 端点将文件存储在 GroupDocs 云存储中。
  4. 创建转换设置 - 将 outputFormat 设置为 XLSX,并根据需要调整可选参数,例如 preserveFormatting
  5. 执行转换 - 使用上传的文件 ID 和设置对象调用 convertDocument
  6. 下载 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.odsoutput.xlsx)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 的基于云的电子表格转换(通过 REST API)

您也可以通过直接调用 REST 端点来执行相同的转换,而无需编写 PHP 代码。

  1. 获取访问令牌

    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"}'
    
  2. 上传 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"
    
  3. 开始转换

    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"}'
    
  4. 下载 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 中的安装和设置

  1. 安装包
    composer require groupdocs-conversion-cloud
    
  2. 下载 SDK - 最新版本可在下载页面获取。
  3. 配置凭据 - 使用您的 client_idclient_secret 创建一个 Configuration 对象。
  4. 设置日志(可选) - SDK 可以将请求日志写入文件;如果需要详细的转换日志,请在配置中启用它。
  5. 应用许可证 - 在生产环境中使用,请购买许可证并按照许可证页面的说明进行应用。

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 MB0.42 s32 MB
1 MB0.68 s38 MB
5 MB1.95 s45 MB
10 MB3.80 s52 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?
    是的,您可以从临时许可证页面请求临时许可证。这使您能够在决定付费计划之前评估转换功能。

阅读更多