9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpenPyXlのチートシート

Last updated at Posted at 2022-02-13

OpenPyXlの基本操作をまとめてみた。

OpenPyXlでExcelファイルを開く
import openpyxl
wb = openpyxl.load_workbook('example.x‐lsx')
Workbookからシートを取得
my_sheetnames = wb.sheetnames # return list object
sheet = wb[my_sheetnames[0]] # sheet[0] for example
シート名を文字列として取得
my_titles = sheet.title
アクティブなシートを取得
anotherSheet = wb.active
シートからセルを取得
cell_A1 = sheet['A1']
セルから値を取得
cell_A1_value = sheet['A1'].value
セルから行列情報を取得
cell_A1_row = sheet['A1'].row
cell_A1_column = sheet['A1'].column
cell_A1_coordinate = sheet['A1'].coordinate
area_cells = sheet['A1':'C3'] #複数セル範囲を指定して取得
列の挿入
sheet.insert_rows(7)
セル範囲の移動(※セルは上書きされる)
sheet.move_range("D4:F10", rows=-1, cols=2)
グラフの作成
import openpyxl.chart #OpenPyXlからChartをインポート
wb_chart = openpyxl.Workbook() #ワークブックを指定
sheet_chart = wb_chart.active #アクティブなシートを指定
for i in range(1, 11): 
sheet_chart['A' + str(i)] = i
refObj = openpyxl.chart.Reference(sheet_chart, min_col=1, min_row=1, max_col=1, max_row=10) #グラフ範囲を指定
seriesObj = openpyxl.chart.Series(refObj, title='First series')
chartObj = openpyxl.chart.BarChart() #棒グラフを指定
chartObj.title = 'My Chart' #グラフタイトルを指定
chartObj.append(seriesObj) #グラフを追加
sheet_chart.add_chart(chartObj, 'C5') #C5セルにグラフを追加
wb_chart.save('sampleChart.xlsx') #名前を付けてグラフを保存
行列を指定してセルを取得
cell_B1 = sheet.cell(row=1, column=2)
# .valueを付加することでセルの値を取得
列の最大値を取得
sheet_max_row = sheet.max_row
行の最大値を取得
sheet_max_column = sheet.max_column
行列を変換
from openpyxl.utils import get_column_letter, column_index_from_string #行列変換用ライブラリを取得
col_letter = get_column_letter(1)
col_max_letter = get_column_letter(sheet.max_column)
index_letter = column_index_from_string('A') #Aの数値を取得
セルの結合および結合解除
wb_merge = openpyxl.Workbook()
sheet_merge = wb_merge.active
sheet_merge.merge_cells('A1:D3')
結合したセルに数値を設定
sheet_merge[A1] = 'Twelve cells merged together.'
sheet_merge.merge_cells('C5:D5')
sheet_merge['C5'] = 'Two merged cells.'
wb_merge.save('merged.xlsx')
結合したセルを解除
wb_unmerge = openpyxl.load_workbook('‐merged.xlsx')
sheet_unmerge = wb_unmerge.active
sheet_unmerge.unmerge_cells('A1:D3')
sheet_unmerge.unmerge_cells('C5:D5')
wb_unmerge.save('unmerged.xlsx')
シートの作成・削除
wb_new.create_sheet() #シートを新規追加
wb_new.create_sheet(index=0, title='Firstsheet') #指定の場所にシートを新規追加
wb_new.create_sheet(index=2, title='Middle sheet') #指定の場所(index2)に名前を付けてシートを追加
del wb_new['Middle sheet']
セルに文字列の代入
sheet_new['A1'] = 'Hello, world!'
print(sheet_new['A1'].value)
フォントの変更
from openpyxl.styles import Font
wb_style = openpyxl.Workbook()
sheet_style = wb_style['Sheet']
italic24Font = Font(size=24, italic=True, name=Calibri) #フォント作成
sheet_style['A1'].font = italic24Font #フォントをA1セルに適用
sheet_style['A1'] = 'Hello, world!'
wb_style.save('styles.xlsx')
数式の導入
wb_formulas = openpyxl.Workbook()
sheet_formulas = wb_formulas.active
sheet_formulas['A1'] = 200
sheet_formulas['A2'] = 300
sheet_formulas['A3'] = '=SUM(A1:A2)' #数式を適用
wb_formulas.save('writeFormula.xlsx')
行列の高さ・幅を設定
wb_dimension = openpyxl.Workbook()
sheet_dimension = wb_dimension.active
sheet_dimension['A1'] = 'Tall row'
sheet_dimension['B2'] = 'Wide column'
sheet_dimension.row_dimensions[1].height = 70 #高さを指定
sheet_dimension.column_dimensions['B'].width = 20 #幅を指定
sheet_dimension.column_dimensions['C'].hidden = True #Cを非表示
wb_dimension.save('dimensions.xlsx')
セルの固定
wb_freeze = openpyxl.load_workbook('pro‐duceSales.xlsx')
sheet_freeze = wb_freeze.active
sheet_freeze.freeze_panes = 'A2' #A2セルより上を固定
wb_freeze.save('freezeExample.xlsx')

参照元

openPyXL_cheatsheet Cheat Sheet by Dima via
https://cheatography.com/dima/cheat-sheets/openpyxl-cheatsheet/
openpyxl による Excelファイル操作方法のまとめ
https://gammasoft.jp/support/how-to-use-openpyxl-for-excel-file/
OpenPyXl公式(英語)
https://openpyxl.readthedocs.io/en/stable/

参考

YouTubeで「Pythonを使った事務処理の効率化」というタイトルで、OpenPyXlを紹介。

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?