そんな思いから Python から Excel ファイルを操作(新規作成・読み込み・書き込み)する処理を簡単にまとめました。
どーもTakeです。
Python から Excel ファイル ができれば、Python で Webスクライピングをした結果を Excel ファイル 出力させたりとか、
いろんなことに応用できると思います。
この記事では、Excel ファイルを操作(新規作成・読み込み・書き込み)を具体的なソースコードをもとに説明します。
- 準備 ・・・ Python で Excel ファイルを処理するための準備
- Excel ファイルの新規作成
- Excel ファイルの書き込み(新規ファイル、既存ファイルへの出力)
- Excel ファイルの読み込み
準備
Python で Excel ファイルを処理するために「openpyxl」をインポートします。
1 |
pip install openpyxl |
pip コマンドでインポートできます。これで準備OKです。
あとはソースコード冒頭で 「openpyxl」モジュールを取り込むようにします。
1 |
import openpyxl as excel |
Excel ファイルの新規作成
Python で Excel ファイルを新規作成する方法です。
下記ソースコードのように、「openpyxl」モジュールの Workbook メソッドで簡単に新規作成できます。
あとは save メソッドで引数に Excel ファイルのファイル名を指定すれば OK です。(下記では test.xlsx と指定)
1 2 3 4 5 |
import openpyxl as excel wbname = "test.xlsx" wb = excel.Workbook() wb.save("test.xlsx") |
下記のように「test.xlsx」が出力されていることが確認できます。
Excel ファイルの書き込み
Python で Excel ファイルを新規作成し、書き込む方法です。
出力先の Excel ファイルのシートのセル番号(ws["A1"] 、ws["B2"] )を指定し、そこに値を代入すれば OK です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import openpyxl as excel wbname = "test.xlsx" msg_A1 = "Helllo World" msg_B2 = "あいうえお" wb = excel.Workbook() ws = wb.active # 書き込み処理 ws["A1"] = msg_A1 ws["B2"] = msg_B2 wb.save(wbname) |
上記を実行することで「test.xlsx」が新規作成され、そのファイルに指定した内容が書き込みされていることが確認できます。
既存 Excel ファイルへの書き込み
既存 Excel ファイルへの書き込み方についてです。
新規作成の処理とは少し異なり、openpyxl モジュールの load_workbook メソッドを使い既存ファイルを開いてから書き込み処理をします。
下記ソースコードでは、既存ファイル「test.xlsx」の C5 セルに「test」と書き込むように処理します。
1 2 3 4 5 6 7 8 9 10 11 12 |
import openpyxl as excel wbname = "test.xlsx" msg = "test" wb = excel.load_workbook(wbname) ws = wb.active # 書き込み処理 ws["C5"] = msg wb.save(wbname) |
下記のように「C5」セルに「test」と書き込まれることが確認できます。
Excel ファイルの読み込み
Python で既存 Excel ファイルを読み込む方法です。
openpyxl モジュールの load_workbook メソッドを使えば、既存ファイルを開くことが可能です。
下記にソースコードを示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import openpyxl as excel wbname = "test.xlsx" wb = excel.load_workbook(wbname) # シート単位にループ for sheet in wb.sheetnames: print("シート名:" + sheet) ws = wb[sheet] # 行単位にループ for row in ws.rows: # 列単位にループ for cell in row: print("行:" + str(cell.row) + " 列:" + str(cell.column)) print("値:" + str(cell.value)) |
上記は「test.xlsx」を開き、その中身を表示させる処理です。
「load_workbook」メソッドをつかってファイルを開きシート・行・列単位に値を表示しています。
下記表に取得値についてまとめてます(「cell.XXX」の「cell」は独自に定義したものなので、作成するソースに応じて変更してください)。
よければ参考にしてみてください(詳細はこのページを参考にいただければと思います)。
値 | 意味 | 例 |
cell.value | セルの値 | あいうえお |
cell.coordinate | セル番号 | A2 |
cell.column | セルの列 | 1 |
cell.row | セルの行 | 2 |
cell.parent | 参照元の情報 | <Worksheet "Sheet"> |
cell.encoding | 文字コード | utf-8 |
最後に
いかがでしたでしょうか?
この記事では Python から Excel ファイルを操作(新規作成・読み込み・書き込み)について解説しました。
この記事が読者の Python 開発のお役に立てれば幸いです。
ではでは。