word-documents について
python-docxを使ってWord文書を作成、編集、確認、読み取るスキルです。文書の作成者や編集者向けに、ワークフローや書式、レイアウト確認を案内し、コメントの抽出にも対応します。
主な機能
- 01Word文書の作成
- 02既存文書の編集
- 03本文とコメントの読み取り
- 04ページ表示のプレビュー
- 05書式とレイアウトのガイド
活用シーン
- 01Word文書の新規作成
- 02既存文書の更新
- 03文書内コメントの確認
- 04複雑なページレイアウトの点検
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aws-samples/ sample-strands-agent-with-agentcore --skill word-documentsインストール後、Claude Code で/word-documentsを入力して読み込まれたか確認します。
詳細
Word ドキュメント
使用する場面
| ツール | 使用する場面 |
|---|---|
create_word_document | ユーザーが新しい Word ドキュメントの作成・生成を依頼した場合 |
modify_word_document | ユーザーが既存のドキュメントの編集・更新、またはコンテンツの追加を依頼した場合 |
list_my_word_documents | ユーザーが利用可能なドキュメントを尋ねた場合 |
read_word_document | ユーザーがドキュメントのダウンロード、またはコメントの閲覧を希望する場合 |
preview_word_page | 実際のページの表示(グラフ、画像、複雑なレイアウト)を確認する場合 |
ワークフロー
- 変更する前に、
preview_word_pageを呼び出して現在のレイアウトを確認します。 - 作成・変更後に、
preview_word_pageを呼び出して検証します。 - ファイルの競合状態を防ぐため、ツールは順次実行します(並列実行はしません)。
ページ設定
python-docx のデフォルトは A4 です。米国のレターサイズにするには、次のようにします。
from docx.shared import Inches
section = doc.sections[0]
section.page_width = Inches(8.5)
section.page_height = Inches(11)
# Set 1-inch margins
section.top_margin = Inches(1)
section.bottom_margin = Inches(1)
section.left_margin = Inches(1)
section.right_margin = Inches(1)
プロフェッショナルな書式設定
- フォント:デフォルトは Arial です。
style.font.name = 'Arial'で設定します。 - 見出し:目次との互換性を保つため、適切な見出しスタイルを使用します:
doc.add_heading('Title', level=1)またはdoc.add_paragraph(style='Heading 1')。 - 箇条書き:
doc.add_paragraph(style='List Bullet')を使用します。Unicode の箇条書き記号は絶対に挿入しないでください。 - 番号付きリスト:
doc.add_paragraph(style='List Number')を使用します。 - 既存のスタイル、フォント、色は、変更時も必ず保持してください。
画像
from docx.shared import Inches
paragraph = doc.add_paragraph()
run = paragraph.add_run()
run.add_picture('file.png', width=Inches(6))
コードのルール
- ドキュメントは事前に
doc = Document()として初期化されているか(作成時)、docとして読み込まれています(変更時)。Document()やdoc.save()は含めないでください。 - 利用可能なライブラリ:python-docx、matplotlib、pandas、numpy(seaborn は利用できません)
- 箇条書きには
add_paragraph(style='List Bullet')を使用します。Unicode の箇条書き記号は絶対に挿入しないでください。 paragraph.text = 'new text'は絶対に使用しないでください(書式が失われます)。代わりに runs を使用してください。- ファイル名には、英字、数字、ハイフンのみを使用してください。
ツールのリファレンス
create_word_document
python-docx のコードを使用して、新しい Word ドキュメントを作成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
python_code | str | はい | python-docx を使用した Python コード(上記の「コードのルール」を参照) |
document_name | str | はい | 拡張子なしのファイル名(英字、数字、ハイフンのみ) |
ツール入力の例:
{
"python_code": "doc.add_heading('Quarterly Report', 0)\ndoc.add_paragraph('This report summarizes Q4 performance.')\ndoc.add_heading('Revenue', level=1)\ndoc.add_paragraph('Total revenue: $1.2M')",
"document_name": "quarterly-report"
}
警告:パラメーターは document_name です。filename や name ではありません。
modify_word_document
既存の Word ドキュメントを変更し、新しい名前で保存します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
source_name | str | はい | 既存のドキュメント名(.docx なし) |
output_name | str | はい | 新しい出力名(元の名前と異なる必要があります) |
python_code | str | はい | ドキュメントを変更する Python コード |
ツール入力の例:
{
"source_name": "quarterly-report",
"output_name": "quarterly-report-v2",
"python_code": "doc.add_paragraph('Additional notes added.')"
}
list_my_word_documents
ワークスペース内のすべての Word ドキュメントを一覧表示します。パラメーターは不要です。
read_word_document
ドキュメントの内容を読み取ります。include_comments=True を指定すると、作成者、日付、テキスト、およびコメントが付いている段落を含むすべてのコメントも表示されます。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
document_name | str | はい | 拡張子なしのドキュメント名 |
include_comments | bool | いいえ | true の場合、段落との対応関係を含めてコメントを抽出・表示します(デフォルト:false) |
preview_word_page
編集前の目視確認用に、ページのスクリーンショットを取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
document_name | str | はい | 拡張子なしのドキュメント名 |
page_numbers | list[int] | はい | プレビューするページ番号(1 始まり) |
UI ガイダンス(tools-config より)
順次実行が必須です: 変更ツールは並列実行せず、必ず順番に実行してください(S3 ファイルの読み書きで競合状態が発生するのを防ぐためです)。
使用する場面:
- create_word_document:ユーザーが新しい Word ドキュメントの作成/生成を依頼した場合
- modify_word_document:ユーザーが既存のドキュメントの編集/変更/更新、または既存のドキュメントへのコンテンツ追加を依頼した場合
- list_my_word_documents:ユーザーが利用可能なドキュメントを尋ねた場合
- read_word_document:ユーザーがドキュメントのダウンロードを希望する場合
- preview_word_page:編集時に実際のページの表示を確認する場合(グラフ、画像、複雑なレイアウトなど)
変更する前に: 必ず最初に preview_word_page を使用して、現在のレイアウトを確認してください。
ページ設定:
- python-docx のデフォルトは A4 です。US Letter にする場合:
section.page_width = Inches(8.5); section.page_height = Inches(11) - 余白を 1 インチに設定:
section.top_margin = section.bottom_margin = section.left_margin = section.right_margin = Inches(1)
プロフェッショナルな書式設定:
- フォント:デフォルトは Arial です。
style.font.name = 'Arial'で設定します - 目次に対応する適切な見出しスタイルを使用します:
document.add_heading('Title', level=1)またはadd_paragraph(style='Heading 1') - リスト:
add_paragraph(style='List Bullet')またはadd_paragraph(style='List Number')を使用します。Unicode の箇条書き文字を手動で挿入しないでください。
書式の保持:
- 既存のスタイル、フォント、色は必ず保持してください
paragraph.text = 'new text'は使用しないでください(書式が失われます)- 書式を保持しながらテキストを変更するには、run を使用してください
ファイル名: 使用できるのは英字、数字、ハイフンのみです(例:"sales-report.docx")
利用可能なライブラリ: python-docx、matplotlib、pandas、numpy(seaborn は利用できません)
画像: ワークスペースに関連画像がある場合:run.add_picture('file.png', width=Inches(6))
品質確認: 作成後は必ず preview_word_page を使用して、表示を確認してください。