我们可以在云端以编程方式添加、编辑或删除现有 Word 文档、Excel 电子表格或文本文件的内容。我们还可以使用 PHP 在文档中应用文本格式,而无需安装任何外部应用程序。在本文中,我们将学习如何在 PHP 中使用 REST API 编辑文档。
本文应涵盖以下主题:
- 文档编辑器 REST API 和 PHP SDK
- 在 PHP 中使用 REST API 编辑 Word 文档
- 在 PHP 中使用 REST API 修改 Excel 电子表格
- 在 PHP 中使用 REST API 更新文本文件
文档编辑器 REST API 和 PHP SDK
我们将使用 GroupDocs.Editor Cloud 的 PHP SDK API 来修改 DOCX、XLSX 和 TXT 文件。它允许编辑 支持的格式 的文档。请在控制台中使用以下命令安装它:
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文档:
上传文件
首先,我们将使用下面给出的代码示例将 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 文件的内容:
- 首先,创建 FileApi 和 EditApi 的实例。
- 接下来,提供上传的 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();
下载更新文件
以上代码示例将编辑后的 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 更新文本文件
我们还可以按照前面提到的步骤更新文本文件的内容。但是,我们只需要提供上传的 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();
在线试用
请试用以下使用上述API开发的免费在线文档编辑工具。
- https://products.groupdocs.app/editor/docx
- https://products.groupdocs.app/editor/xlsx
- https://products.groupdocs.app/editor/txt
结论
在本文中,我们学习了如何:
- 在 PHP 中编辑或修改 Word、Excel 或文本文件的内容;
- 上传DOCX文件到云端;
- 从云端下载更新的 Word 文件。
此外,您可以使用 文档 了解有关 GroupDocs.Editor Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。