<< home

Excel操作入門

  1. 仮想環境の構築

    • 作業ディレクトリの作成 mkdir excel_training
    • ディレクトリ内に入る cd excel_training
    • 仮想環境の作成 python -m venv .venv
    • 仮想環境に入る . .venv/bin/activate
    • pipアップデート python -m pip install --upgrade pip
    • 必要なパッケージのインストール pip install openpyxl
  2. エクセルファイルの作成

    • Pythonファイルを作成する。
    • Pythonファイルの名前を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が作られていたら成功です。
  3. Excelを開く

    • 2で作成したPythonファイルexl_tr.pyと同じ場所にexl_open.pyというファイルを新たに作成します。
    • Pythonファイルの名前をexl_open.pyとして以下解説します。
    • exl_open.pyのファイルの中に以下を書き込みます。
      import os # 作成したファイルを開きます os.system('example.xlsx')
    • 上記の'example.xlsx'はExcelのファイル名(パス)を書きます。
    • ターミナルでpython exl_open.pyで実行します。
    • example.xlsxが起動するのを確認します。
    • A1にHelloとB1にWorldと入力されていれば成功です。
    • sheet02.cell(row=row+1 ,column=colum).value = 'ログイン数'
  4. 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__' になります。
  5. 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のセルの中身をプリント文でターミナルに表示します。
  6. 外部のモジュール(Pythonファイル)を取り込んで利用する

    • 3で作成した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で実行します。
    • Excelファイルが開くのを確認します。
    • ターミナルは待機状態です。
    • Excelファイルを閉じるとターミナルも終了していることを確認できます。
    • 解説 Python では、他のファイルやモジュールに定義された関数やクラスを利用するために import 文を使用します。これにより、コードの再利用が可能になり、プログラムの構造を整理することができます。
      一般的な構文 from モジュール名 import 関数名またはクラス名
      このインポート文の目的は、別のファイルやモジュール内で定義された Excel_Open という関数またはクラスを使用できるようにすることです。インポートした後、Excel_Open を自分のスクリプト内で自由に呼び出すことができます。
<< home