PythonでOpenPyXLを用いたExcel操作まとめ

本記事は以前Qiitaに投稿した内容を本ブログに持ってきています。 概要 業務でPythonを使ってExcelを作成することがあったので、備忘録としてこの記事を作成しました。 実行環境はPython 3.7で、OpenPyXLを利用してExcelを作成します。 作成・保存・読み込み 新規にExcel作成 from openpyxl import Workbook wb = Workbook() Excel保存 wb.save('test.xlsx') save()にはエクセルを保存したいpath(ディレクトリとファイル名)を指定してください。 アクティブなシート取得 ws = wb.active シート作成 ws2 = wb.create_sheet("Sheet2") ws3 = wb.create_sheet("sheet3", 0) # 最初のシートに設定 ws4 = wb.create_sheet("sheet4", -1) # 最後から2番目にシートに設定 Excel読み込み from openpyxl import load_workbook load_workbook('test.xlsx') シート編集 シートのタイトル命名 ws.title = "test-sheet" セルに文字入力 ws['A1'] = "hogehoge" ['A1']の部分に指定したいセルを入力 数式を使う ws['A1'] = "=SUM(1, 1)" セルの結合 ws.merge_cells('A2:D2') セルの結合解除 ws.unmerge_cells('A2:D2') セルの色付け from openpyxl.styles import PatternFill fill = PatternFill(patternType='solid', fgColor='4d4d4d') ws['A1']....

March 16, 2020 · 1 min · 179 words · Yu

PythonでExcelを添付してメールを送信する

本記事は以前Qiitaに投稿した内容を本ブログに持ってきています。 概要 先日、業務で「PythonでExcelを添付してメールを送信する」機能を試行錯誤して実装しました。 Djangoのメール送信機能を使ったら、わりかし簡単に実装できたので、自分と同じに状況になるかもしれない人のために記事を作成しました! 環境 Python 3.7 Django 2.2 ※ Djangoを利用していないと本記事の実装はできません。 事前準備 openpyxlをインストールします。 $ pip install openpyxl メールサーバの設定 プロジェクトのsettings.pyに送信先の情報を追加します。 送信するメールサーバの情報を記載してください。 settings.py EMAIL_HOST = '00.00.00.00' # 送信メールサーバ EMAIL_PORT = '000' # 送信メールポート メールに添付するExcelを整える 添付したいExcelをbytesオブジェクトに変換します。 これをしないとメール送信ができません。 from openpyxl import load_workbook from io import BytesIO wb = load_workbook('test.xlsx') # 添付したいExcelを読み込む excelfile = BytesIO() wb.save(excelfile) # Excelをbytesオブジェクトに変換する メールをExcelを添付して送信する 以下、コードでメール送信ができます!! from django.core.mail import EmailMessage subject = "件名" body = "本文です。" send_from = "hogehoge1@gmail.com" # 送信者 send_to = ["hogehoge2@gmail....

March 12, 2020 · 1 min · 94 words · Yu