TOMMY'S HOUSE 
pcモード 本日は 2024/12/26 (木)です。
最終更新日:2021/02/14 22:30
現時点で、PHPでサイト構築しています。(Flask もしくは Djangoに変更予定)

Openpyxl

Openpyxlとは、pythonでExcelファイルを制御する外部ライブラリです。 Openpyxlを使うためには、外部ライブラリをインストールする必要があります。 コマンドプロンプトもしくはエディタのジャーナルなどで 以下のコマンドを入力して実行します。
C:\Users\tommy> pip install openpyxl (※インストールしたPythonのバージョンによっては pip3 install openpyxl)
pyファイル作成にあたってファイルコーディングの最初(あたり)を 下記のようにコーディングします。 今後、このページで説明している事項は全て最初にこのimport文がコーディングされている 前提とし、説明を省略します。
# openpyxl をインポートするためにファイルの上部に以下のコードをコーディングする。 import openpyxl # 他の import 文を続けてOK
ブックファイルを作成する
# ブックファイルを作成 wb = openpyxl.Workbook()
ブックファイルを開く (※ディレクトリの指定はターミナル実行はカレントディレクトリ) (※バッチなどで実行の場合は配置ディレクトリが基準) パスの¥はバックスラッシュ2つ重ねにすること!
# ブックファイルを開く (基準と同じディレクトリの場合) wb = openpyxl.load_workbook("sample.xlsx") # ブックファイルを開く (基準から一つ上のディレクトリの場合) wb = openpyxl.load_workbook("..\\sample.xlsx") # ブックファイルを開く (絶対パス) wb = openpyxl.load_workbook("C:\\Users\\tommy\\sample.xlsx") # read_only=True で読み取り専用で開く wb = openpyxl.load_workbook("sample.xlsx", read_only=True)
ブックを保存する
プログラム処理をしても保存しないと反映されないので保存は重要!
# ブックファイルを保存 # # 同じファイル名での上書き保存でもパスの指定は必要。 # # 全く違うファイルでも指定したパスに別のファイルがあっても上書きされるので注意 # # (ファイルに書き込めない状態は除く) wb.save("sample.xlsx")
シートを取得する
# アクティブのシートを取得する # # wb は ブックとする # # 作成 or 開いたブックの変数に .Workbook() とする ws = wb.Workbook() # シート名を指定して取得する ws = wb["SheetName"] # 左からn番目のシートを取得する # # ゼロから始めるので n - 1 番目の指定が必要となる # ## 以下は1番目 ws = wb.worksheets[0]
セルの値を設定
# # ws にてシートが取得されている前提とする # セル(C1)に "入力値" を入力 # # セル番地形式 ws["C1"].value = "入力値" # # R1C1形式 ws.cell(3,1).value = "入力値" # セル(C1)に 関数 "=SUM(B1:B4)" を入力 ws["C1"].value = "=SUM(B1:B4)" ws.cell(3,1).value = "=SUM(B1:B4)" # セル(C1)にセル内改行をした文字を入力 # # セル内改行には alignment にて wrapText=True が必要 ws.cell(1,3).alignment = Alignment(wrapText=True) # # \n はセル内改行 ws.cell(1,3).value = "上\n下"
セルのフォントデザインを設定
# fontの設定をする為、上部に以下のコードをコーディングする。 from openpyxl.styles import Font # # まず、フォント情報を格納する # color は 文字色 形式は RRGGBB もしくは AARRGGBB AAは透明度(小さい数値が透明) RRは赤 GGは緑 BBは青 16進数 # 3ケタ短縮色指定は不可 fontstyle = Font(color="00000000") # size は サイズ (pt) fontstyle = Font(size=15) # italic は 斜体 (True or False) fontstyle = Font(italic=False) # bold は 太字 (True or False) その他 underline 下線 strike 打消線 など fontstyle = Font(bold=False) # name は フォント体 fontstyle = Font(name="DF特太ゴシック体") # # ここまでの書き方だと一つずつしか変数に格納できない。 # # 一気に指定する場合は カンマで 連結 fontstyle = Font(color="00000000", size=15, italic=False, bold=False , name="Meiryo UI") # セル(3,1)にフォント情報を設定する # # 最後に設定することを忘れずに sheet.cell(3,1).font = fontstyle
セルの背景色を設定
# Fillの設定をする為、上部に以下のコードをコーディングする。 from openpyxl.styles import PatternFill # # まず、背景色情報を格納する # patternType は 塗潰し方を指定する。通常塗潰しはsolidを指定。 # その他の塗潰し方法のパターンは後日記載とする。 # fgColor の設定は colorを指定 注意点は フォントと同じ fill = PatternFill(patternType='solid', fgColor='000000') # # ws にてシートが取得されている前提とする # セル(C1)に "入力値" を入力 ws.cell(1,3).fill = fill
出来ないこと(間違っていたらごめんなさい)
  • オートシェイプの作成、修正
  • マクロの作成、制御
  • 《注意》このページの説明は Windows のパソコンでの開発を前提としています。(サイト管理人Mac未所持)