openpyxlを使用してPythonでExcelファイルを操作する
みなさまおはこんばんにちは、せなです
今回はPythonでExcelを操作する方法について説明したいと思います
環境
Python3.8
Windows10
Pythonのインストールがまだの方は以下の記事を参考にどうぞ
リンク:Python3.8のインストール
はじめに
Python3でExcelを操作するには以下のいずれかのライブラリをインストールする必要があります
(ほかにもありますが、代表的な3つを紹介します)
xlrd:xls、xlsxファイルの読み込みに使える
xlwt:xlsファイルの書き込み・作成・保存に使える
openpyxl:xlsxファイルの読み込み・書き込み・作成・保存に使える
今回は最も使いやすい(と個人的に思う)openpyxlを使用して説明したいと思います
openpyxlのインストール
インストールはpipを使用して以下のコマンドでインストールできます
pip install openpyxl
Excelファイルの読み込み
openpyxlをインポートして「load_workbook(xlsxファイルディレクトリ)
」とすることでxlsxの読み込みが行われ、Workbookオブジェクトを取得できます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
Excelファイルの上書き保存(新規作成)
「Workbookオブジェクト.save(xlsxファイルディレクトリ)
」とすることで上書き保存することができます
また、指定したxlsxファイルが存在しない場合はファイルが新規作成されて保存されます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
wb.save('c:\work\sample.xlsx')
wb.save('c:\work\new_sample.xlsx') # 新規作成
Excelシート名の取得
「Workbookオブジェクト.sheetnames
」とすることでそのxlsx内のシート名をリスト形式で一括取得することができます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
wb.sheetname
指定のシートのオブジェクトを取得したい場合は「Workbookオブジェクト.[シート名]
」とすることでWorksheetオブジェクトが取得できます
「Woeksheetオブジェクト.title
」とすることでそのワークシート名を取得できます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
ws = wb.[Sheet1]
ws.title
Excelの指定セルの取得
「Worksheetオブジェクト.cell(row=行, column=列)
」とすることで指定したセルのCellオブジェクトを取得できます
columnの1はA、2はB(以下etc…)に対応しています
row、columnのどちらも「0」を指定するとエラーになります
「Cellオブジェクト.value
」とすることでそのセルの値を取得できます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
ws = wb.[Sheet1]
cell = ws.cell(row=1, column=1)
cell.value
Excelの指定セルへの書き込み
「Worksheetオブジェクト[指定セル] = 値
」とすることで指定セルに値を追加できます
または、「Worksheetオブジェクト.cell(row=行, column=列, value=値)
」などでも追加することができます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
ws = wb.[Sheet1]
ws['A1'] = 'Hello'
ws.cell(row=2, column=1, value='openpyxl')
以下のように「Worksheetオブジェクト.cell(row=5, column=1).coordinate
」を使用すると「A5」などのセル番号を取得することができます
Worksheetオブジェクト.min_rowはワークシート内の最小行を取得することができ
max_columnは最大列を取得することができます
(もちろんmax_rowもmin_columnもあります)
ws[ws.cell(row=ws.min_row, column=ws.max_column + 1).coordinate] = 'Next'
Excelワークシートの操作
追加
「Workbookオブジェクト.create_sheet(シート名)
」とすることで新規シートを追加することができます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
wb.create_sheet('AddSheet')
削除
「Workbookオブジェクト.remove_sheet(Workbookオブジェクト[シート名])
」とすると指定したシートを削除することができます
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
wb.remove_sheet(wb['AddSheet'])
コピー
「Workbookオブジェクト.copy_worksheet(Workbookオブジェクト[シート名])」
とすることで指定したシートをコピーすることができます
そのさいにコピーされたシート名は後方に「Copy」が付きます(下の場合は「Sheet1 Copy」になる)
import openpyxl
wb = openpyxl.load_workbook('c:\work\sample.xlsx')
wb.copy_worksheet(wb['Sheet1'])
最後に
ここまで読んで下さり、ありがとうございました
最近作っているプログラムでExcelへの出力とかしたかったので、個人的によく使用したのとか調べても欲しい情報とかが出なかったものを書いてます
今後も追記or新規記事で紹介するかもしれませんがその時はよろしくお願いします
ではでは~
ディスカッション
コメント一覧
まだ、コメントがありません