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'].fill = fill patternTypeはセルの塗り方、fgcolorはセルに塗る色を指定しています。 色に関しては、以下サイトなどを参考にしてください。 https://www.color-sample.com/colors/4d4d4d/ 文字に色付け from openpyxl.styles.fonts import Font ws['A1'].font = Font(color='FFFFFF') 列の幅を変更 ws.column_dimensions['A'].width = 15 セルに罫線を設定 from openpyxl.styles.borders import Border, Side border = Border(top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'), left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000') ) for row_num in range(1, 15): for col_num in range(1, 3): ws.cell(row=row_num, column=col_num).border = border ws.cell(row=row_num, column=col_num).alignment = Alignment(horizontal = 'left', vertical = 'top', wrap_text = False) horizontalで水平方向を、verticalで垂直方向を何揃えにするかを指定しています。horizontal, verticalでは以下の定数を指定することができます。 horizontal 'center', 'centerContinuous', 'fill', 'left', 'justify', 'distributed', 'right', 'general' vertical ...