Book の操作#
作成・開く・保存#
以下のようにモジュールを読み込んでおくこと
新規作成#
保存#
Info
- book 編集後は必ず save すること(変更内容がファイルへ保存されない)
- 既存のファイルの場合は上書きされる
- 別名で保存は新規ファイルで保存される
開く#
読込み専用で開く
wb = load_workbook(r"../sample.xlsx",read_only=True)
ストリームとして保存#
ファイルをストリームに保存する場合、たとえばPyramid、Flask、DjangoなどのWebアプリケーションを使用する場合は、
NamedTemporaryFile()
を指定できます 。
from tempfile import NamedTemporaryFile
from openpyxl import Workbook
wb = Workbook()
with NamedTemporaryFile() as tmp:
wb.save(tmp.name)
tmp.seek(0)
stream = tmp.read()
属性template = True
を指定して、ワークブックをテンプレートとして保存できます。
または、この属性をFalse(デフォルト)
に設定して、ドキュメントとして保存します。
wb = load_workbook('document_template.xltx')
wb.template = False
wb.save('document.xlsx', as_template=False)
Warning
ドキュメントテンプレートにドキュメントを保存するには、データ属性とドキュメント拡張子を監視する必要があります。 そうしないと、結果テーブルエンジンがドキュメントを開くことができません。
以下は失敗例
wb = load_workbook('document.xlsx')
# Need to save with the extension *.xlsx
wb.save('new_document.xlsm')
# MS Excel can't open the document
# or
# Need specify attribute keep_vba=True
wb = load_workbook('document.xlsm')
wb.save('new_document.xlsm')
# MS Excel will not open the document
# or
wb = load_workbook('document.xltm', keep_vba=True)
# If we need a template document, then we must specify extension as *.xltm.
wb.save('new_document.xlsm')
# MS Excel will not open the document