Python で REST API を使用して Word ドキュメントを編集する

場合によっては、Word 文書をプログラムで編集する必要がある場合があります。 Python を使用して、DOC または DOCX ファイルのコンテンツを簡単に追加、編集、削除したり、テキストの書式設定を適用したりできます。この記事では、Python の REST API を使用して Word ドキュメントを編集する方法を学びます。

この記事では次のトピックについて説明します。

Word ドキュメント エディター REST API と Python SDK

DOCX ファイルの編集には、GroupDocs.Editor Cloud の Python SDK API を使用します。コンソールで次のコマンドを使用してインストールしてください。

pip install groupdocs_editor_cloud

上記の手順に従う前に、ダッシュボードからクライアント ID とシークレットを取得してください。 ID とシークレットを取得したら、以下に示すようにコードを追加します。

client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"

configuration = groupdocs_editor_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

Python で REST API を使用して Word ドキュメントを編集する

以下の簡単な手順に従って Word 文書を編集できます。

  1. DOCXファイルをクラウドにアップロード
  2. 編集 Pythonを使用したWord文書
  3. ダウンロード更新ファイル

ドキュメントをアップロードする

まず、以下のコード例を使用して、DOCX ファイルをクラウドにアップロードします。

# APIのインスタンスを作成する
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# サンプルファイルをアップロードする
request = groupdocs_editor_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Editor\\sample.docx", my_storage)
response = file_api.upload_file(request)

その結果、アップロードされた DOCX ファイルは、クラウド上のダッシュボードの ファイル セクション で利用できるようになります。

Python を使用して Word 文書を編集する

以下の手順に従って、Word 文書をプログラムで編集できます。

  • まず、FileApiEditApiのインスタンスを作成します。
  • 次に、FileInfo のインスタンスを作成し、入力 DOCX ファイル パスを指定します。
  • 次に、WordProcessingLoadOptions のインスタンスを初期化し、FileInfo を割り当てます。
  • 次に、WordProcessingLoadOptions オブジェクトを引数として使用して LoadRequest を作成します。
  • 次に、LoadRequest オブジェクトを使用して EditApi.load() メソッドを呼び出し、入力 DOCX ファイルをロードします。
  • その後、読み込んだファイルを使用して DownloadFileRequest を作成します。
  • 次に、FileApi.download\file() メソッドを呼び出して、ファイルを HTML ドキュメントとしてダウンロードします。
  • 次に、ダウンロードしたHTMLファイルを文字列として読み込みます。
  • 次に、HTML を編集し、更新された HTML ドキュメントを保存します。
  • 次に、UploadFileRequest を作成し、HTML パスとファイルをパラメータとして渡します。
  • 次に、UploadFileRequest で FileApi.upload\file() メソッドを呼び出し、更新された HTML ファイルをアップロードします。
  • 次に、DOCX に保存する WordProcessingSaveOptions のインスタンスを作成します。
  • その後、WordProcessingSaveOptions オブジェクトを使用して SaveRequest を作成します。
  • 最後に、SaveRequest オブジェクトを含む EditApi.save() メソッドを使用して、HTML を DOCX に保存し直します。

次のコード サンプルは、Python の REST API を使用して Word ドキュメントを編集する方法を示しています。

# API のインスタンスを初期化する
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# 入力ファイルのパスを指定します
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# ロードOptions を定義して編集可能な状態にロードします。
loadOptions = groupdocs_editor_cloud.WordProcessingロードOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# ロードリクエストの作成
loadRequest = groupdocs_editor_cloud.ロードRequest(loadOptions)

# ロード
loadResult = editApi.load(loadRequest)        

# ダウンロードリクエストの作成
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# HTMLドキュメントをダウンロード
htmlFile = fileApi.download_file(downloadRequest)

# HTMLドキュメントを読んでください
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# 何かを編集...    
html = html.replace("Title of the document", "Hello world")
html = html.replace("Subtitle #1", "Welcome")

# HTMLをファイルに書き戻す
with open(htmlFile, 'w') as file:
    file.write(html)

# アップロードリクエストの作成
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# ファイルをアップロードする
fileApi.upload_file(uploadRequest)

# HTMLをdocxに保存し直す
saveOptions = groupdocs_editor_cloud.WordProcessing保存Options()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/edited.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# 保存リクエストの作成
saveRequest = groupdocs_editor_cloud.保存Request(saveOptions)

# 保存
saveResult = editApi.save(saveRequest)

# 終わり
print("Document edited: " + saveResult.path)
Python の REST API を使用して Word ドキュメントを編集します。

Python の REST API を使用して Word ドキュメントを編集します。

更新されたファイルをダウンロードする

上記のコードサンプルは、編集した Word 文書 (DOCX) をクラウド上に保存します。次のコードサンプルを使用してダウンロードできます。

# APIの初期化
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# ダウンロードファイルリクエストの作成
request = groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", my_storage)

# ダウンロードファイル
response = file_api.download_file(request)

# ダウンロードしたファイルを作業ディレクトリに移動します
shutil.move(response, "C:\\Files\\Editor\\")

Python を使用して Word 文書に表を追加する

前述の手順に従って、プログラムを使用して Word 文書に表を追加できます。ただし、次に示すように、HTML を更新してドキュメントに表を追加する必要があります。

html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
	<caption style=\"font-weight:bold;\"> Persons List</caption>
	<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
	<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
	<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
	</table>""")

次のコード サンプルは、Python の REST API を使用して Word 文書に表を追加する方法を示しています。前述の手順に従ってファイルをアップロードおよびダウンロードしてください。

# API のインスタンスを初期化する
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# 入力ファイルのパスを指定します
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# ロードOptions を定義して編集可能な状態にロードします。
loadOptions = groupdocs_editor_cloud.WordProcessingロードOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# ロードリクエストの作成
loadRequest = groupdocs_editor_cloud.ロードRequest(loadOptions)

# ロード
loadResult = editApi.load(loadRequest)        

# ダウンロードリクエストの作成
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# HTMLドキュメントをダウンロード
htmlFile = fileApi.download_file(downloadRequest)

# HTMLドキュメントを読んでください
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# テーブルの挿入
html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
  <caption style=\"font-weight:bold;\"> Persons List</caption>
  <tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
  <tr><td>Jill</td><td>Smith</td><td>50</td></tr>
  <tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
  </table>""")

# HTMLをファイルに書き戻す
with open(htmlFile, 'w') as file:
    file.write(html)

# アップロードリクエストの作成
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# ファイルをアップロードする
fileApi.upload_file(uploadRequest)

# HTMLをdocxに保存し直す
saveOptions = groupdocs_editor_cloud.WordProcessing保存Options()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_table.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# 保存リクエストの作成
saveRequest = groupdocs_editor_cloud.保存Request(saveOptions)

# 保存
saveResult = editApi.save(saveRequest)

# 終わり
print("Document edited: " + saveResult.path)
Python を使用して Word 文書にテーブルを追加します。

Python を使用して Word 文書にテーブルを追加します。

Python を使用して Word 文書に画像を挿入する

前述の手順に従って、プログラムで Word 文書に画像を挿入できます。ただし、以下に示すように、ドキュメントに画像を挿入するには HTML を更新する必要があります。

html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");

次のコード サンプルは、Python の REST API を使用して Word 文書に画像を挿入する方法を示しています。前述の手順に従ってファイルをアップロードおよびダウンロードしてください。

# API のインスタンスを初期化する
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# 入力ファイルのパスを指定します
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# ロードOptions を定義して編集可能な状態にロードします。
loadOptions = groupdocs_editor_cloud.WordProcessingロードOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# ロードリクエストの作成
loadRequest = groupdocs_editor_cloud.ロードRequest(loadOptions)

# ロード
loadResult = editApi.load(loadRequest)        

# ダウンロードリクエストの作成
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# HTMLドキュメントをダウンロード
htmlFile = fileApi.download_file(downloadRequest)

# HTMLドキュメントを読んでください
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# 画像を挿入する
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");

# HTMLをファイルに書き戻す
with open(htmlFile, 'w') as file:
    file.write(html)

# アップロードリクエストの作成
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# ファイルをアップロードする
fileApi.upload_file(uploadRequest)

# HTMLをdocxに保存し直す
saveOptions = groupdocs_editor_cloud.WordProcessing保存Options()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_image.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# 保存リクエストの作成
saveRequest = groupdocs_editor_cloud.保存Request(saveOptions)

# 保存
saveResult = editApi.save(saveRequest)

# 終わり
print("Document edited: " + saveResult.path)
Python で REST API を使用して Word ドキュメントを編集する

Python を使用して Word 文書に画像を挿入します。

オンラインで試す

上記の API を使用して開発された、次の無料のオンライン DOCX 編集ツールをお試しください。 https://products.groupdocs.app/editor/docx

結論

この記事では、クラウド上で Word 文書を編集する方法を学びました。また、Python の REST API を使用して DOCX ファイルにテーブルを追加したり、画像を挿入したりする方法についても説明しました。この記事では、プログラムで DOCX ファイルをクラウドにアップロードし、編集したファイルをクラウドからダウンロードする方法についても説明しました。さらに、GroupDocs.Editor Cloud API の詳細については、ドキュメント を使用して学習できます。また、ブラウザーを通じて直接 API を視覚化し操作できるようにする API リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。

関連項目