KAMEYA_WORKS
仮想環境の構築
mkdir excel_training
cd excel_training
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
pip install openpyxl
エクセルファイルの作成
exl_tr.py
として以下解説します。exl_tr.py
のファイルの中に以下を書き込みます。import openpyxl
# 新しいワークブックを作成します
wb = openpyxl.Workbook()
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# Excel ファイルとして保存します
wb.save('example.xlsx')
python exl_tr.py
で実行します。exl_tr.py
と同じ場所にexample.xlsxが作られていたら成功です。Excelを開く
exl_tr.py
と同じ場所にexl_open.py
というファイルを新たに作成します。exl_open.py
として以下解説します。exl_open.py
のファイルの中に以下を書き込みます。import os
# 作成したファイルを開きます
os.system('example.xlsx')
python exl_open.py
で実行します。Excelを編集する
exl_tr.py
のファイルの中を以下のように書き換えます。import openpyxl
def Excel_Create():
# 新しいワークブックを作成します
wb = openpyxl.Workbook()
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# Excel ファイルとして保存します
wb.save('example.xlsx')
def Write_Excel(path='example.xlsx'):
# Excel ファイルを開き編集する。
wb = openpyxl.load_workbook(path)
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A2'] = 'Python'
ws['B2'] = 'Excel'
ws.cell(row=3 ,column=1).value = '色々な'
ws.cell(row=3 ,column=1).value = 'データ'
# Excel ファイルとして保存します
wb.save(path)
# Excel ファイルを閉じます
wb.close()
def Execute(number):
'''
1: Excel_Create
2: Write_Excel
'''
message = 'success'
if number == 1:
Excel_Create()
elif number == 2:
Write_Excel()
else:
message = 'error'
return message
print(__name__)
if __name__ == '__main__':
print(Execute(1))
python exl_tr.py
で実行します。def Write_Excel(path='example.xlsx'):
に注目してください。
path: この引数は、保存する Excel ファイルのパス(ファイル名および保存場所)を指定するために使われます。
デフォルト値として example.xlsx
が設定されていますので、関数を引数なしで呼び出した場合、自動的に example.xlsx
という名前でファイルが保存されます。
デフォルト値を使う: Write_Excel() のように引数を省略して関数を呼び出すと、デフォルト値 example.xlsx
が使われます。
引数を指定する: Write_Excel('my_file.xlsx')
のように引数を指定して関数を呼び出すと、その値が使われます。この場合、ファイルは my_file.xlsx
という名前で保存されます。
def Execute(number):
です。
関数の定義: 関数 Execute は、number という引数を受け取ります。この引数は実行したい操作を指定するために使われます。
関数の説明: コメント(''' で囲まれた部分)は、この関数が何をするかを説明しています。具体的には、number の値が 1 なら Excel_Create 関数を、2 なら Write_Excel 関数を実行することが記されています。
メッセージの初期化: 変数 message を 'success' として初期化します。これは、デフォルトでは操作が成功したことを示しています。
条件分岐: if 文と elif 文を使用して、number の値に応じて異なる操作を実行します。
number == 1 の場合、Excel_Create 関数を実行します。
number == 2 の場合、Write_Excel 関数を実行します。
エラーハンドリング: number が 1 または 2 以外の値の場合、message を 'error' に設定します。これは、無効な number が指定された場合を示します。
メッセージの返却: 最後に、message を返します。message は 'success' または 'error' になります。
print(__name__)
です。
__name__
の役割: Python では、すべてのファイル(モジュール)が特別な変数 __name__
を持っています。この変数は、ファイルがどのように実行されているかによって異なる値を持ちます。
スクリプトとして実行される場合: ファイルが直接実行されると、__name__
の値は '__main__'
になります。PythonでExcelファイルを開いて中身を確認する
exl_tr.py
のファイルの中を以下のように書き換えます。import openpyxl
def Excel_Create():
# 新しいワークブックを作成します
wb = openpyxl.Workbook()
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# Excel ファイルとして保存します
wb.save('example.xlsx')
def Write_Excel(path='example.xlsx'):
# Excel ファイルを開き編集する。
wb = openpyxl.load_workbook(path)
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A2'] = 'Python'
ws['B2'] = 'Excel'
ws.cell(row=3 ,column=1).value = '色々な'
ws.cell(row=3 ,column=1).value = 'データ'
# Excel ファイルとして保存します
wb.save(path)
# Excel ファイルを閉じます
wb.close()
def Read_Excel(path='example.xlsx'):
# Excel ファイルを開きます
wb = openpyxl.load_workbook(path)
# アクティブなワークシートを取得します
ws = wb.active
# セルの値を取得します
print(ws['A1'].value)
print(ws['B1'].value)
# Excel ファイルを閉じます
wb.close()
return 'success'
def Execute(number):
'''
1: Excel_Create
2: Write_Excel
3: Read_Excel
'''
message = 'success'
if number == 1:
Excel_Create()
elif number == 2:
Write_Excel()
elif number == 3:
Read_Excel()
else:
message = 'error'
return message
print(__name__)
if __name__ == '__main__':
print(Execute(3))
python exl_tr.py
で実行します。def Read_Excel(path='example.xlsx'):
以下を追加しています。
print(ws['A1'].value)
でExcelのA1のセルの中身をプリント文でターミナルに表示します。外部のモジュール(Pythonファイル)を取り込んで利用する
exl_open.py
のファイルの中を下記に書き換えます。import os
def Excel_Open(file_name='example.xlsx'):
# 作成したファイルを開きます
os.system(file_name)
exl_tr.py
のファイルの中を以下のように書き換えます。import openpyxl
from exl_open import Excel_Open #<-追加
def Excel_Create():
# 新しいワークブックを作成します
wb = openpyxl.Workbook()
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# Excel ファイルとして保存します
wb.save('example.xlsx')
def Write_Excel(path='example.xlsx'):
# Excel ファイルを開き編集する。
wb = openpyxl.load_workbook(path)
# アクティブなワークシートを取得します
ws = wb.active
# セルにデータを書き込みます
ws['A2'] = 'Python'
ws['B2'] = 'Excel'
ws.cell(row=3 ,column=1).value = '色々な'
ws.cell(row=3 ,column=1).value = 'データ'
# Excel ファイルとして保存します
wb.save(path)
# Excel ファイルを閉じます
wb.close()
def Read_Excel(path='example.xlsx'):
# Excel ファイルを開きます
wb = openpyxl.load_workbook(path)
# アクティブなワークシートを取得します
ws = wb.active
# セルの値を取得します
print(ws['A1'].value)
print(ws['B1'].value)
# Excel ファイルを閉じます
wb.close()
return 'success'
def Execute(number):
'''
1: Excel_Create
2: Write_Excel
3: Read_Excel
4: Excel_Open
'''
message = 'success'
if number == 1:
Excel_Create()
elif number == 2:
Write_Excel()
elif number == 3:
Read_Excel()
elif number == 4:#<-追加
Excel_Open()#<-追加
else:
message = 'error'
return message
print(__name__)
if __name__ == '__main__':
print(Execute(4))
python exl_tr.py
で実行します。一般的な構文
from モジュール名 import 関数名またはクラス名
このインポート文の目的は、別のファイルやモジュール内で定義された Excel_Open という関数またはクラスを使用できるようにすることです。インポートした後、Excel_Open を自分のスクリプト内で自由に呼び出すことができます。