office-automation は何をしますか?
Word および Excel ファイルを自動処理します。Python スクリプトを使用して、ドキュメントやテーブルの読み取り、書き込み、フォーマットを行います。バッチ処理、テンプレートへのデータ入力、データ抽出、フォーマット変換をサポートします。
概要
このスキルは、一般的なオフィス文書(Word の .docx、Excel の .xlsx)をプログラムで操作するための機能を提供します。以下の操作を自動化できます:
- 読み取り: 文書やセルからテキスト、テーブル、画像などのコンテンツを抽出します。
- 書き込み: 新しい文書やシートを作成し、データを挿入します。
- フォーマット: フォント、色、罫線、配置などのスタイルを設定します。
- バッチ処理: 複数のファイルを一度に処理します。
- テンプレートへのデータ入力: 特定のプレースホルダーを実際のデータで置き換えます。
- データ抽出: 条件に基づいてセルや行からデータを抽出します。
- フォーマット変換: 異なるオフィス形式間(例:Word ↔ PDF、Excel ↔ CSV)でファイルを変換します。
使用例
Word の操作
from docx import Document
# 文書を開く
doc = Document('template.docx')
# プレースホルダーを置き換える
for paragraph in doc.paragraphs:
if '{{name}}' in paragraph.text:
paragraph.text = paragraph.text.replace('{{name}}', '山田太郎')
# 新しい段落を追加
doc.add_paragraph('これは自動生成された段落です。')
# 保存
doc.save('output.docx')
Excel の操作
from openpyxl import load_workbook
# ワークブックを開く
wb = load_workbook('data.xlsx')
ws = wb.active
# セルに値を書き込む
ws['A1'] = '名前'
ws['B1'] = '年齢'
ws['A2'] = '鈴木一郎'
ws['B2'] = 30
# 複数のセルを更新
for row in ws.iter_rows(min_row=2, max_row=10):
for cell in row:
if cell.column == 2 and cell.value:
cell.value = int(cell.value) + 1
wb.save('updated.xlsx')
バッチ処理の例
import os
from pathlib import Path
input_dir = Path('./input_files')
output_dir = Path('./output_files')
output_dir.mkdir(exist_ok=True)
for file_path in input_dir.glob('*.docx'):
doc = Document(str(file_path))
# 処理を実行
# ...
output_path = output_dir / f'processed_{file_path.name}'
doc.save(str(output_path))
注意事項
- このスキルは、
python-docxやopenpyxlなどのライブラリを使用します。必要に応じてインストールしてください。 - 大量のファイルを処理する場合は、メモリ使用量に注意してください。
- テンプレートファイルは事前に準備しておく必要があります。
- フォーマット変換には追加のライブラリ(例:
pdfkit、pandas)が必要になる場合があります。