Pythonのお勉強:OpenPyXLでEXCELのワークブックを作成する

OpenPyXl

OpenPyXlの公式サイト」にTutorialがあったので、「OpenPyXはじめの一歩」ということで「Create a Workbok」に書いてある内容をベースして、自作のサンプルプログラムをiMacのVSCodeで作成して、「デバックなしで実行」してみました。

「Tutorial:Create a Workbok」の自作サンプルプログラム (「Creatte_a_workbook.py」)

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = "myws_0"

ws['A1'] = "最初に作成されたシート名を\'myws_0\'に変更しました"
ws1 = wb.create_sheet("myws_1") # insert at the end (default)
ws1.sheet_properties.tabColor = "ff0000" # tabColor -> red
ws1['A1'] = "シート\'myws_1\'をタブの色赤色で最後尾に作成しました"

ws2 = wb.create_sheet("myws_2",0) # insert at first position
ws2.sheet_properties.tabColor = "00ff00" # tabColor -> green
ws2['A1'] = "シート\'myws_2\'をタブの色緑色で先頭に作成しました"

ws3 = wb.create_sheet("myws_3",-1)  # insert at the penultimate position
ws3.sheet_properties.tabColor = "0000ff" # tabColor -> blue
ws3['A1'] = "シート\'myws_3\'をタブの色青色で最後尾から2番目に作成しました"

wb.save('Creatte_a_workbook.xlsx')
wb.close()

サンプルプログラムの作成と実行

  • iMacのエディタ(Atom)で上記の「Creatte_a_workbook.py」を作成して、新しく作成した「PythonPRG」フォルダ内の「openpyxl」 フォルダに保存しました。
  • 「Creatte_a_workbook.py」を右クリックして表示される「このアプリケーションで開く」-「その他」で表示されるアプリケーションの設定で「常にこのアプリケーションで開く」アプリケーションに「Visual Studio Code.app」(VScode)に設定しました。
  • 「Creatte_a_workbook.py」をダブルクリックしてVScodeを起動しました。
  • VScodeの左側メニュー「エクスプローラー」をクリック(Click①)して表示されるメニューで、「フォルダーを開く」をクリック(Click②)して「PythonPRG/openpyxl」 フォルダを開き、「PythonPRG/openpyxl」 フォルダをワークフォルダ(ルートフォルダ)に設定しました。
  • VScodeの上部メニュー「実行」-「デバックなしで実行」をクリックしてプログラムを実行しました。
  • 「PythonPRG/openpyxl」 フォルダ内にプログラムで保存した”Creatte_a_workbook.xlsx”が新規に作成されていることを確認しました。
  • 新規に作成されたExcelファイル”Creatte_a_workbook.xlsx”を開いて作成された内容を確認しました。
  • VScodeの上部メニュー「Code」-「Visual Studio Code を終了」をクリックしてVSCodeを終了しました。

サンプルプログラムの作成と実行(動画版)

サンプルプログラム作成で得られた知見

  • ライブラリを使用するためには、プログラムの冒頭でimport文で利用するライブラリをインポートする。「openpyxl」でEXCELの新規ワークブックを作成する場合は、以下のようにWorkbookクラスを指定してインポートする。
    from openpyxl import Workbook
    
  • EXCELの新規ワークブックの作成は、以下のように「Workbook()」でWorkbookオブジェクトを生成した後に、Worksheetオブジェクトをアクディブ「wb.active」にする。
    wb = W<pre>rkbook()
    ws = wb.active
    
  • アクディブにしたシートの名前は、以下のようにWorksheetオブジェクトのtitle属性に値を代入することにより変更できる。
    ws.title = "myws_0"
    
  • アクディブにしたシートのセルには、以下のように直接セルの場所を指定して値を代入することができる。
    ws['A1'] = "最初に作成されたシート名を\'myws_0\'に変更しました"
    
  • Worksheetオブジェクトのcreate_sheetメソッドを使用して、以下のように新規シートを作成することができる。create_sheetメソッドをシート名を引数にして使用すると、引数で指定したシート名で新規シートが最後尾に挿入される。2番目の引数に「0」を指定した場合は先頭、引数「-1」を指定した場合は、最後尾から2番目に新規シートが挿入される。
    ws1 = wb.create_sheet("myws_1") # insert at the end (default)
    ws2 = wb.create_sheet("myws_2",0) # insert at first position
    ws3 = wb.create_sheet("myws_3",-1)  # insert at the penultimate position
    
  • シートのタブ色は、以下のようにWorksheetオブジェクトのproperties.tabColor属性に値(colorコード)を代入することにより変更できる。
    ws1.sheet_properties.tabColor = "ff0000" # tabColor -> red
    ws2.sheet_properties.tabColor = "00ff00" # tabColor -> green
    ws3.sheet_properties.tabColor = "0000ff" # tabColor -> blue
    
  • 作成したExcelワークブックは、以下のようにWorkbookクラスのsaveメソッドをファイル名を指定して実行することにより保存できる。
    wb.save('Creatte_a_workbook.xlsx')
    

管理人がPythonの勉強のために購入した本

コメント