PythonでExcelのデータの読み込みと書き込みを行う方法


Pythonにはエクセルのxlsxファイルを操作するモジュールが数多くあるのですが、どれも甲乙付けがたい状態です。

その中でも比較的使いやすいと私が感じた「読み込みも書く込みもできる」openpyxlの使い方を書きます。



xlsxデータの読み込み

import openpyxl

#----------------------
# xlsxファイルのロード方法
wb = openpyxl.load_workbook(filename="base.xlsx",data_only = False)

#----------------------
# シートの名前を取得する
print(wb.get_sheet_names()[0])

#----------------------
# シートを名前から取得
ws = wb.get_sheet_by_name(wb.get_sheet_names()[0])

#----------------------
# シートの縦横の最大値を取得
print("横",ws.max_column)
print("縦",ws.max_row)

#----------------------
for y in range(0,ws.max_row):
    for x in range(0,ws.max_column):
        print(ws.cell(column = x+1,row = 1+y).value)
        ws.cell(column = x+1,row = 1+y).value="abc"
        print(ws.cell(column = x+1,row = 1+y).value)
    print((1+y),"行目が終わりました")

#----------------------
#別の名前で保存する
wb.save("save.xlsx")

.xlsxファイルを読み書きするには、まずimport openpyxlします。

xlsxファイルのロード方法

wb = openpyxl.load_workbook(filename="base.xlsx",data_only = False)

ワークブックオブジェクト = openpyxl.load_workbook(filename= ファイル名 ,data_only = FalseかTrue )

filenameに開くxlsxファイルの名前、data_onlyにTrueを入れるとデータだけを、Falseを入れると関数なども取得できます。

シートの名前を取得する方法

print(wb.get_sheet_names()[0])

ワークブックオブジェクト.get_sheet_names()

返値としてシート名のリストが配列で返ってきます。
ary=wb.get_sheet_names()
といった感じで受け取る事もできます。

シートを名前から取得する方法

ws = wb.get_sheet_by_name(wb.get_sheet_names()[0])

シートオブジェクト=ワークブックオブジェクト.get_sheet_by_name( シート名 )

シート名を指定してシートのオブジェクトが取得できます。

シートのセルにアクセスする方法

ws.cell(column = x+1,row = 1+y).value="abc"

シートオブジェクト.cell(column =,row =).value

セルの中身を参照する事ができます。
columnとrowは1が最小値で、両方1の場合はA1のセルが参照されます。

xlsxファイルのセーブ方法

wb.save("save.xlsx")

ワークブックオブジェクト.save( ファイル名 )

ワークブックオブジェクトをファイル名で保存します。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連記事



スポンサーリンク