※このページではアフィリエイト広告を利用しています

【Python応用】OpenPyXLとPandasを用いた基本的なExcel操作

Python

ここでは、Pythonにおける「OpenPyXL」と「Pandas」を用いたExcelファイルの基本的なデータ読込み、書込み操作方法について解説しています。

この記事の対象

  • openpyxlでのデータ読込み方法を知りたい方
  • openpyxlでのデータ書込み方法を知りたい方
  • pythonを用いた自動化を検討している方
スポンサーリンク
スポンサーリンク

「Excel」ファイルの操作前に行うこと

PythonでExcelファイルを操作する方法には「Python-Excel」というライブラリを用いる方法と「Pandas」を用いる場合が多いです。

Excel操作を行う前に以下の通りインストールしておく必要があります。

$ pip3 install openpyxl
$ pip3 install pandas

OpenPyXLを用いた方法についての詳細は以下をご参照下さい。

>>>OpenPyXLでとりあえず抑えておきたい操作-概要-

Pandasを用いた方法については以下をご参照下さい。

>>>Pythonとデータ操作-Pandasの概要-

「openpyxl」を用いたデータ読み込み

以下のプログラムはopenpyxlを用いた任意のファイルを読み込む内容になっています。予め以下のようなファイルを用意しました。ファイルの内容としては、Amazonアソシエイトで売り上げたレポートです。ここでは、商品名と紹介料を抽出して出力しています。

xlsxファイルの内容
#「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」メソッドについては以下をご参照下さい。

>>>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」ファイルのデータを読み込んで、グラフ化する方法について解説しています。

タイトルとURLをコピーしました