在 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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看