7
11

More than 1 year has passed since last update.

openpyxl チートシート

Last updated at Posted at 2021-09-20

キャプチャ.JPG

日付:2021/09/17
分類:Python

openpyxlの使い方をよく忘れるので、チートシートにしました
(以下wb:ワークブック、sh:ワークシート)

#インポート
import openpyxl

#ファイルを開く 読み込み
wb = openpyxl.load_workbook(r'xxx.xlsx')

#シートを開く
sh = wb.worksheets[0] #シート番号
sh = wb["Sheet1"] #シート名指定
sh = wb.active #アクティブシート(保存したときトップ)

#シートのコピー
sh2 = wb.copy_worksheet(sh)

#書き込む
wb.save(r'xxx.xlsx')

wbを開くとメモリ上に展開されるので、データを作成、修正したものを書き込んでいきます。ただし、ここまでだとデータはまだメモリ上にあるので、最後にwb.save()でファイルに保存するというイメージになります。

#最大行数
R = sh.max_row #最終行

#最大列数
C = sh.max_column #最終列

#セル読み込み
x = sh.cell(row=gyo, column=retsu).value #1セルずつ
ar = sh["B2:F5"]  #2次元配列にまとめて読める

#セル書き込み
sh.cell(row = gyo, column = retsu, value = x)
セル書き込みと言っても、この段階ではデータはメモリ上にあるので、最後にファイルに保存が必要です。

#行削除
sh.delete_rows(gyo)

#列削除
sh.delete_cols(retsu)

#行挿入
sh.insert_rows(2, 1)

#列挿入
sh.insert_cols(2, 1)

#複数のファイルに保存するときは
 以下wb:ワークブック、sh:ワークシート

①wbを開く(読み込みでもOK)
②wbからshを開く
③メモリ上で作成、修正
④wbをxxx.xlsxとしてファイルに保存
⑤wbをyyy.xlsxとしてファイルに保存

#複数のシートとして保存するときは
①wbを開く(読み込みでもOK)
②wbからwsを開き、メモリ上で作成、修正
③wsをws2などとしてコピー(メモリ上) 
④wbをxxx.xlsxとしてファイルに保存

##サンプルプログラム
たとえば、以下のようなデータあるとします
(ファイル名"Book1.xlsx"、シート名"Sheet1")
キャプチャ.JPG

2行2列のセル(B2セル)のデータを読み取って表示するサンプルです

test.py
import openpyxl
wb = openpyxl.load_workbook(r'Book1.xlsx')
sh = wb["Sheet1"]       #シート名指定
x = sh.cell(row=2, column=2).value 
print(x)

この例だと「山田」と表示されます

replitで試す

#セルの連結(セルの結合)

merge.py
import openpyxl

def merge():
    wb = openpyxl.load_workbook(r'Book1.xlsx')
    sh = wb["Sheet1"]       #シート名指定
    
    # セルの結合
    sh.merge_cells("A2:A4")
    sh["A2"] = "merged"
    
    # 任意の名称で保存
    wb.save('test.xlsx')

merge.JPG

7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11