既存の 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
DOCX、XLSX、TXT ファイルを変更するには、GroupDocs.Editor Cloud の PHP SDK API を使用します。 サポートされている形式のドキュメントを編集できます。コンソールで次のコマンドを使用してインストールしてください。
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 ファイルをクラウドにアップロードする方法を示しています。
// APIを初期化する
$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 ファイルをダウンロードする方法を示しています。
// APIを初期化する
$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 リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。