Python 開発者は、Word または Excel ドキュメントをプログラムで編集する必要がある場合があります。外部アプリケーションをインストールしなくても、このようなドキュメントを更新できます。この記事では、REST API を使用して Word または Excel ドキュメントを編集する方法に焦点を当てます。
この記事では次のトピックについて説明します。
ドキュメント エディター REST API および Python SDK
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 リファレンス セクションも提供しています。不明な点がある場合は、フォーラムでお気軽にお問い合わせください。