Python 開発者は、Word または Excel ドキュメントをプログラムで編集する必要がある場合があります。外部アプリケーションをインストールしなくても、このようなドキュメントを更新できます。この記事では、REST API を使用して Word または Excel ドキュメントを編集する方法に焦点を当てます。

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

ドキュメント エディター REST API および Python SDK

GroupDocs.Editor クラウド製品ファミリー

Word ドキュメントまたは Excel シートを編集するには、GroupDocs.Editor Cloud の Python SDK API を使用します。これを使用すると、Word 処理ドキュメント、Excel シート、またはその他のサポートされている形式のドキュメントをプログラムで編集できます。また、クラウド API の ドキュメント エディター ファミリ メンバー として、.NET、Java、PHP、Ruby、Android、および Node.js SDK も提供します。

コンソールで次のコマンドを使用して、GroupDocs.Editor-Cloud を Python プロジェクトにインストールできます。

pip install groupdocs_editor_cloud

手順と利用可能なコード例を開始する前に、ダッシュボード からクライアント ID とクライアント シークレットを取得してください。以下に示すように、コードに ID とシークレットを追加します。

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

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

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

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

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

まず、以下のコード例を使用して、Word ドキュメントをクラウドにアップロードします。

storage_api = groupdocs_editor_cloud.StorageApi.from_config(config_info)
file_api = groupdocs_editor_cloud.FileApi.from_config(config_info)

# サンプルファイルをアップロードする
files = glob.glob("C:\\Files\\sample_word_document.docx", recursive=False)
destination_file = files[0].replace("C:\\Files\\", "", 1)
file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(destination_file, files[0]))

その結果、Word ファイルが Cloud Storage にアップロードされ、ダッシュボードの ファイル セクション で利用できるようになります。

Python で Word 文書を編集する

Word 文書をプログラムで編集するには、以下の手順に従ってください。

  • ファイル API インスタンスと 編集 API インスタンスを作成します
  • WordProcessingLoadOptions を提供する
  • Edit APIのLoadメソッドでファイルを読み込みます。
  • File APIのDownload Fileメソッドを使用してHTMLドキュメントをダウンロードします。
  • HTMLドキュメントの編集
  • File API の Upload File メソッドを使用して HTML をアップロードして戻します
  • DOCX に保存するための WordProcessingSaveOptions を提供する
  • Edit API の Save メソッドを使用して HTML を DOCX に保存します。

次のコード スニペットは、REST API を使用して Word ドキュメントを更新する方法を示しています。

# 必要なAPIインスタンスを作成する
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# ドキュメントはすでにストレージにアップロードされています。
# 編集可能な状態にロードします
file_info = groupdocs_editor_cloud.FileInfo("sample_word_document.docx", None, None, None)
load_options = groupdocs_editor_cloud.WordProcessingLoadOptions()
load_options.file_info = file_info
load_options.output_path = "output"
load_result = edit_api.load(groupdocs_editor_cloud.LoadRequest(load_options))

# HTMLドキュメントをダウンロード
html_file = file_api.download_file(groupdocs_editor_cloud.DownloadFileRequest(load_result.html_path))
html = ""
with open(html_file, 'r') as file:
    html = file.read()

# 何かを編集...
html = html.replace("Sample test text", "Hello world")

# HTMLをストレージにアップロードして戻す
with open(html_file, 'w') as file:
    file.write(html)

file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(load_result.html_path, html_file))

# HTMLをdocxに保存し直す
save_options = groupdocs_editor_cloud.WordProcessingSaveOptions()
save_options.file_info = file_info
save_options.output_path = "output/edited.docx"
save_options.html_path = load_result.html_path
save_options.resources_path = load_result.resources_path
save_result = edit_api.save(groupdocs_editor_cloud.SaveRequest(save_options))

# 終わり
print("Document edited: " + save_result.path)

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

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

request = groupdocs_editor_cloud.DownloadFileRequest("output\\edited.docx", my_storage)
response = file_api.download_file(request)

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

REST APIを使用してExcelシートを編集する

Excel シートをプログラムで編集するには、以下の手順に従ってください。

  • ファイル API インスタンスと 編集 API インスタンスを作成します
  • SpreadsheetLoadOptions を提供する
  • Edit APIのLoadメソッドでファイルを読み込みます。
  • File APIのDownload Fileメソッドを使用してHTMLドキュメントをダウンロードします。
  • HTMLドキュメントの編集
  • File API の Upload File メソッドを使用して HTML をアップロードして戻します
  • XLSX に保存するための SpreadsheetSaveOptions を提供する
  • Edit APIのSaveメソッドを使用してHTMLをXLSXに保存し直します。

以下の簡単なコード例は、REST API を使用して Excel シートを更新する方法を示しています。前述の手順に従ってファイルをアップロードおよびダウンロードしてください。

# 必要なAPIインスタンスを作成する
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configurations)

# ドキュメントはすでにストレージにアップロードされています。
# 編集可能な状態にロードします
file_info = groupdocs_editor_cloud.FileInfo("sample_four_sheets.xlsx")
load_options = groupdocs_editor_cloud.SpreadsheetLoadOptions()
load_options.file_info = file_info
load_options.output_path = "output"
load_options.worksheet_index = 0
load_result = edit_api.load(groupdocs_editor_cloud.LoadRequest(load_options))

# HTMLドキュメントをダウンロード
html_file = file_api.download_file(groupdocs_editor_cloud.DownloadFileRequest(load_result.html_path))
html = ""
with open(html_file, 'r') as file:
    html = file.read()

# 何かを編集...
html = html.replace("This is sample sheet", "This is sample sheep")

# HTMLをストレージにアップロードして戻す
with open(html_file, 'w') as file:
    file.write(html)

file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(load_result.html_path, html_file))

# HTMLをxlsxに保存し直す
save_options = groupdocs_editor_cloud.SpreadsheetSaveOptions()
save_options.file_info = file_info
save_options.output_path = "output/edited.xlsx"
save_options.html_path = load_result.html_path
save_options.resources_path = load_result.resources_path
save_result = edit_api.save(groupdocs_editor_cloud.SaveRequest(save_options))

# 終わり
print("Excel sheet edited: " + save_result.path)

結論

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

関連項目