在 PHP 中使用 REST API 编辑文档。

我们可以在云端以编程方式添加、编辑或删除现有 Word 文档、Excel 电子表格或文本文件的内容。我们还可以使用 PHP 在文档中应用文本格式,而无需安装任何外部应用程序。在本文中,我们将学习如何在 PHP 中使用 REST API 编辑文档。

本文应涵盖以下主题:

文档编辑器 REST API 和 PHP SDK

我们将使用 GroupDocs.Editor Cloud 的 PHP SDK API 来修改 DOCXXLSXTXT 文件。它允许编辑 支持的格式 的文档。请在控制台中使用以下命令安装它:

composer require groupdocscloud/groupdocs-editor-cloud

安装后,请使用Composers的autoload来使用SDK,如下图:

require_once('vendor/autoload.php');

在执行上述步骤之前,请从仪表板获取您的客户端 ID 和密码。获得 ID 和密码后,添加如下所示的代码:

// 此代码示例演示如何在代码中添加客户端 ID 和密码。
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

// 初始化配置
$configuration = new GroupDocs\Editor\Configuration();

// 设置配置
$configuration->setAppSid(CommonUtils::$ClientId);
$configuration->setAppKey(CommonUtils::$ClientSecret);
$configuration->setApiBaseUrl(CommonUtils::$ApiBaseUrl);

在 PHP 中使用 REST API 编辑 Word 文档

我们可以按照下面提到的简单步骤来编辑Word文档:

  1. 上传DOCX文件到云端
  2. 编辑上传的Word文档
  3. 下载编辑后的文件

上传文件

首先,我们将使用下面给出的代码示例将 DOCX 文件上传到云端:

// 此代码示例演示如何将 DOCX 文件上传到云端。
// 初始化接口
$apiInstance = new GroupDocs\Editor\FileApi($configuration);

// 输入文件路径
$file = "C:\\Files\\Editor\\sample.docx";

// 上传文件请求
$request = new GroupDocs\Editor\Model\Requests\uploadFileRequest("sample.docx", $file, self::$MyStorage, null);

// 上传文件
$response = $apiInstance->uploadFile($request);

因此,上传的 DOCX 文件将在云端仪表盘的 文件部分 中可用。

在 PHP 中编辑 Word 文档

现在,我们将按照以下步骤编辑上传的 DOCX 文件的内容:

  • 首先,创建 FileApiEditApi 的实例。
  • 接下来,提供上传的 DOCX 文件路径。
  • 然后,将该文件下载为 HTML 文档。
  • 接下来,将下载的 HTML 文件作为字符串读取。
  • 然后,编辑 HTML 并保存更新后的 HTML 文档。
  • 之后,上传更新后的 HTML 文件。
  • 最后,使用 EditApi.save() 方法将 HTML 保存回 DOCX。

以下代码示例显示了如何在 PHP 中使用 REST API 编辑 Word 文档。

// 此代码示例演示如何编辑 Word 文档
// 创建必要的 API 实例
$editApi = new GroupDocs\Editor\EditApi($configuration);
$fileApi = new GroupDocs\Editor\FileApi($configuration);

// 将上传的DOCX文件加载到可编辑状态
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("sample.docx");

// 如果受密码保护,请设置密码
// $fileInfo->setPassword("密码");

// 定义加载选项
$loadOptions = new Model\WordProcessingLoadOptions();
$loadOptions->setFileInfo($fileInfo);
$loadOptions->setOutputPath("");
$loadResult = $editApi->load(new Requests\loadRequest($loadOptions));

// 下载 HTML 文件
$htmlFile = $fileApi->downloadFile(new Requests\downloadFileRequest($loadResult->getHtmlPath()));
$html = file_get_contents($htmlFile->getRealPath());

// 编辑文字
$html = str_replace("Title of the document", "Welcome", $html);
$html = str_replace("Subtitle #1", "This is Subtitle", $html);

// 将 HTML 上传回存储
file_put_contents($htmlFile->getRealPath(), $html);
$uploadRequest = new Requests\uploadFileRequest($loadResult->getHtmlPath(), $htmlFile->getRealPath());
$fileApi->uploadFile($uploadRequest);

// 将 HTML 保存回 DOCX
$saveOptions = new Model\WordProcessingSaveOptions();
$saveOptions->setFileInfo($fileInfo);
$saveOptions->setOutputPath("edited.docx");
$saveOptions->setHtmlPath($loadResult->getHtmlPath());
$saveOptions->setResourcesPath($loadResult->getResourcesPath());
$saveResult = $editApi->save(new Requests\saveRequest($saveOptions));

// 完毕。
echo "Document edited: " . $saveResult->getPath();
在 PHP 中使用 REST API 编辑 Word 文档。

在 PHP 中使用 REST API 编辑 Word 文档。

下载更新文件

以上代码示例将编辑后的 Word 文件 (DOCX) 保存在云端。可以使用以下代码示例下载它:

// 此代码示例演示如何从云端下载 DOCX 文件。
// 初始化接口
$apiInstance = new GroupDocs\Editor\FileApi($configuration);

// 下载文件请求
$request = new GroupDocs\Editor\Model\Requests\DownloadFileRequest("edited.docx", self::$MyStorage, null);

// 下载文件
$response = $apiInstance->downloadFile($request);

在 PHP 中使用 REST API 修改 Excel 电子表格

我们可以按照前面提到的步骤来编辑 Excel 工作表的内容。但是,我们只需要提供上传的 XLSX 文件路径即可。

以下代码示例展示了如何在 PHP 中使用 REST API 编辑 Excel 工作表数据。

// 此代码示例演示如何编辑 Excel 工作表
// 创建必要的 API 实例
$editApi = new GroupDocs\Editor\EditApi($configuration);
$fileApi = new GroupDocs\Editor\FileApi($configuration);

// 将上传的 XLSX 文件加载到可编辑状态
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("sample.xlsx"); 

// 定义加载选项
$loadOptions = new Model\SpreadsheetLoadOptions();
$loadOptions->setFileInfo($fileInfo);
$loadOptions->setOutputPath("");
$loadOptions->setWorksheetIndex(0);
$loadResult = $editApi->load(new Requests\loadRequest($loadOptions));

// 下载 HTML 文件
$htmlFile = $fileApi->downloadFile(new Requests\downloadFileRequest($loadResult->getHtmlPath()));
$html = file_get_contents($htmlFile->getRealPath());

// 编辑一些东西...
$html = str_replace("Region", "Country", $html);
$html = str_replace("Europe", "France", $html);
$html = str_replace("Asia", "China", $html);
$html = str_replace("South America", "Argentina", $html);

// 将 HTML 上传回存储
file_put_contents($htmlFile->getRealPath(), $html);
$uploadRequest = new Requests\uploadFileRequest($loadResult->getHtmlPath(), $htmlFile->getRealPath());
$fileApi->uploadFile($uploadRequest);

// 将 HTML 保存回 XLSX
$saveOptions = new Model\SpreadsheetSaveOptions();
$saveOptions->setFileInfo($fileInfo);
$saveOptions->setOutputPath("edited.xlsx");
$saveOptions->setHtmlPath($loadResult->getHtmlPath());
$saveOptions->setResourcesPath($loadResult->getResourcesPath());
$saveResult = $editApi->save(new Requests\saveRequest($saveOptions));

// 完毕。
echo "Document edited: " . $saveResult->getPath();
在 PHP 中使用 REST API 修改 Excel 电子表格。

在 PHP 中使用 REST API 修改 Excel 电子表格。

在 PHP 中使用 REST API 更新文本文件

我们还可以按照前面提到的步骤更新文本文件的内容。但是,我们只需要提供上传的 TXT 文件路径即可。

以下代码示例显示了如何在 PHP 中使用 REST API 编辑文本文件。

// 此代码示例演示如何编辑文本文件
// 创建必要的 API 实例
$editApi = new GroupDocs\Editor\EditApi($configuration);
$fileApi = new GroupDocs\Editor\FileApi($configuration);

// 加载上传的TXT文件进入可编辑状态
$fileInfo = new Model\FileInfo();
$fileInfo->setFilePath("sample.txt");        
$loadOptions = new Model\TextLoadOptions();
$loadOptions->setFileInfo($fileInfo);
$loadOptions->setOutputPath("");
$loadResult = $editApi->load(new Requests\loadRequest($loadOptions));

// 下载 HTML 文档
$htmlFile = $fileApi->downloadFile(new Requests\downloadFileRequest($loadResult->getHtmlPath()));
$html = file_get_contents($htmlFile->getRealPath());

// 编辑文字
$html = str_replace("Title of the document", "Welcome", $html);
$html = str_replace("Subtitle #1", "This is Subtitle", $html);

// 将 HTML 上传回存储
file_put_contents($htmlFile->getRealPath(), $html);
$uploadRequest = new Requests\uploadFileRequest($loadResult->getHtmlPath(), $htmlFile->getRealPath());
$fileApi->uploadFile($uploadRequest);

// 将 HTML 保存回 TXT
$saveOptions = new Model\TextSaveOptions();
$saveOptions->setFileInfo($fileInfo);
$saveOptions->setOutputPath("edited.txt");
$saveOptions->setHtmlPath($loadResult->getHtmlPath());
$saveOptions->setResourcesPath($loadResult->getResourcesPath());
$saveResult = $editApi->save(new Requests\saveRequest($saveOptions));

// 完毕。
echo "Document edited: " . $saveResult->getPath();
在 PHP 中使用 REST API 更新文本文件。

在 PHP 中使用 REST API 更新文本文件。

在线试用

请试用以下使用上述API开发的免费在线文档编辑工具。

结论

在本文中,我们学习了如何:

  • 在 PHP 中编辑或修改 Word、Excel 或文本文件的内容;
  • 上传DOCX文件到云端;
  • 从云端下载更新的 Word 文件。

此外,您可以使用 文档 了解有关 GroupDocs.Editor Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看