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 1 year has 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?