ここでは、Pythonにおける「OpenPyXL」と「Pandas」を用いたExcelファイルの基本的なデータ読込み、書込み操作方法について解説しています。
この記事の対象
「Excel」ファイルの操作前に行うこと
PythonでExcelファイルを操作する方法には「Python-Excel」というライブラリを用いる方法と「Pandas」を用いる場合が多いです。
Excel操作を行う前に以下の通りインストールしておく必要があります。
$ pip3 install openpyxl
$ pip3 install pandas
OpenPyXLを用いた方法についての詳細は以下をご参照下さい。
>>>OpenPyXLでとりあえず抑えておきたい操作-概要-
Pandasを用いた方法については以下をご参照下さい。
「openpyxl」を用いたデータ読み込み
以下のプログラムはopenpyxlを用いた任意のファイルを読み込む内容になっています。予め以下のようなファイルを用意しました。ファイルの内容としては、Amazonアソシエイトで売り上げたレポートです。ここでは、商品名と紹介料を抽出して出力しています。
#「openpyxl」を用いたデータ読み込み
import openpyxl
#1---ファイルの指定
data_name = "data.xlsx"
excel_data = openpyxl.load_workbook(data_name)
#2---sheetの指定
sheet = excel_data.worksheets[2]
#3---sheetの行指定
data = []
for rows_out in sheet.rows:
data.append([rows_out[1].value,rows_out[11].value])
#不要行の削除
del data[0]
#4---dataの出力
for i,t in enumerate(data):
print(i+1,str(t[0]),"=========>",str(t[1]))
以下は解説になります。
#1---ファイルの指定
data_name = "data.xlsx"
excel_data = openpyxl.load_workbook(data_name)
1の部分でファイルを指定しています。
#2---sheetの指定
sheet = excel_data.worksheets[2]
次に、2の部分ではExcelのシートを指定しています。ここでは、3番目のシートを指定しています。
#3---sheetの行指定
data = []
for rows_out in sheet.rows:
data.append([rows_out[1].value,rows_out[11].value])
3の部分で行を指定しています。「sheet.rows」は行を示しています。columnにすれば列になります。指定した行の値をappendで追加しています。
「append」メソッドについては以下をご参照下さい。
#4---dataの出力
for i,t in enumerate(data):
print(i+1,str(t[0]),"=========>",str(t[1]))
最後に4の部分でデータを出力しています。
「openpyxl」を用いたデータ書き込み
以下のプログラムはopenpyxlを用いてファイルに任意の文字を書き込む内容になっています。読み込みで使用したAmazonアソシエイトのデータを使用して、紹介料の合計を書き込む内容となっています。
#「openpyxl」を用いたデータ書き込み
import openpyxl
#1---ファイルの指定
data_name = "data.xlsx"
excel_data = openpyxl.load_workbook(data_name)
#2---sheetの指定
sheet = excel_data.worksheets[2]
#3---合計
sum = 0
for i,rows_out in enumerate(sheet.rows):
if i == 0:continue
elif i == 1:continue
sum_data = int(rows_out[11].value)
sum += sum_data
print(sum)
#4---書き込み内容
sheet['K10']="合計"
sheet['L10']=sum
#5---ファイルの保存
dataname = "sum_data.xlsx"
excel_data.save(dataname)
1の部分でファイルを指定しています。次に2の部分でシートを指定しています。3の部分で紹介料の合計を計算しています。0番目と1番目は不要なので、条件構文で飛ばしています。4の部分では書き込むセルを指定しています。このとき、フォントに色や大きさを指定することも可能です。最後に5の部分で「sum_data」という名前で保存しています。
その他、Excelファイルの操作一覧
項目 | 内容 |
Pandasを用いた「Excel」ファイルの読み込み操作 | 「Pandas」はデータ解析に適しているライブラリです。ここではExcelファイルの基本的な読み込み方法について解説しています。 |
Pandasを用いた複数の「CSV」ファイルの結合操作 | 同一フォルダ内にある複数のCSVファイルを「pandas」を用いて、まとめて結合する方法について解説しています。 |
Pandasを用いた複数の「xlsx」ファイルの結合方法 | ここでは、Pandasを用いた複数の「xlsx」ファイルの結合方法について「Amazonアソシエイトレポート」を用いて解説しています。 |
PandasとMatplotlibを用いた「xlsx」ファイルのグラフ化方法 | 「Pandas」と「Matplotlib」を用いて任意の「xlsx」ファイルのデータを読み込んで、グラフ化する方法について解説しています。 |