ここでは、「OpenPyXL」におけるExcelのセル操作全般について初学者向けに解説しています。
この記事の対象
「OpenPyXL」のインストール方法についてはこちらをご参照下さい。
>>>OpenPyXLでとりあえず抑えておきたい操作-概要-
任意のセルに文字挿入
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "Title"
ws['A1'] = 1
wb.save('test.xlsx')
上記のプログラムはTitleというシートのA1セルに1という数値を入力してtest.xlsxというファイル名で保存しているものです。
セルの操作を行う際はactiveなWorkbookを取得して「ws[‘***’]」とするだけです。
【結果】
cell()モジュールを用いた文字挿入
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "Title"
ws.cell(1,1).value = 1
wb.save('test.xlsx')
cell()モジュールを使用して文字挿入もできます。「***.cell.value(row=***, column=***)」とすることで挿入場所を指定します。注意点として、セルの位置指定は1からです。
結果は上記と同じなので省略します。
行列の幅指定
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.row_dimensions[1].height =60
ws.column_dimensions['A'].width =80
wb.save('test.xlsx')
行の幅指定は「***.row_dimensions[***].height」を用います。列の幅指定は「***.column_dimensions[‘***’].width」を用います。
【結果】
任意のセルのフォント指定
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
fontstyle1 = Font(name='Arial')
fontstyle2 = Font(name='Arial',bold=True)
fontstyle3 = Font(color='C5D9F1')
fontstyle4 = Font(i=True)
fontstyle5 = Font(size=30)
fontstyle6 = Font(shadow=True)
fontstyle7 = Font(strike=True)
fontstyle8 = Font(underline='single')
for i in range(8):
ws.cell(i+1,1).value= 1
ws.cell(1,1).font = fontstyle1
ws.cell(2,1).font = fontstyle2
ws.cell(3,1).font = fontstyle3
ws.cell(4,1).font = fontstyle4
ws.cell(5,1).font = fontstyle5
ws.cell(6,1).font = fontstyle6
ws.cell(7,1).font = fontstyle7
ws.cell(8,1).font = fontstyle8
wb.save('test.xlsx')
フォントの大きさや色、打ち消し線などは「Font」を用いることで指定できます。それぞれのオプションの意味は以下になります。ご参照下さい。
項目 | 内容 |
bold | 太文字。Trueで有効 |
color | 色設定。colorコードで指定 |
italic | イタリック体設定。Trueで有効 |
name | フォントの書式設定。フォント名で指定 |
size | サイズの設定。小数点での指定が可能 |
shadow | 影の設定。Trueで有効 |
strike | 打ち消し線の設定。Trueで有効 |
underline | 下線設定。「single」「double」「singleAccounting」「doubleAccounting」が選択可能 |
【結果】
表示形式を年月にする方法
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.cell(1,1).value= 14673
ws.cell(2,1).value= 14673
ws.cell(2,1).number_format = 'yyyy/m/d'
wb.save('test.xlsx')
表示形式を年月にする場合は「***.number_format」を使用することで指定可能です。
【結果】
任意のセルの塗りつぶし
from openpyxl import Workbook
from openpyxl.styles import PatternFill
wb = Workbook()
ws = wb.active
ws.title = "Title"
set_fill = PatternFill(patternType='solid', fgColor='C5D9F1')
ws['A1'] = 1
ws['A1'].fill = set_fill
wb.save('test.xlsx')
セルを塗りつぶすには「PatternFill」を用いる必要があります。
「PatternFill」の引数としてはfgColorを指定して、反映させたいセルのfillに代入するだけです。
【結果】