LoginSignup
0
0

More than 1 year has passed since last update.

週一でPython勉強会やってみる⑨

Last updated at Posted at 2023-06-14

前回の続き

諸事情により勉強会の日をずらす・・・人は来ないようだ・・・泣

セル名と行番号・列番号を相互変換

  • セル名で指定したい場合や、行と列が分かってる場合などに変換ができるとよりエクセルが使いやすくなる。
  • cellオブジェクトにrowやcolumnプロパティがあるので行と列番号は取得できる。
cell = sheet["C5"]
print(cell.row, cell.column) # 行と列番号が表示される
# 4 3
  • 逆にcellのcoordinateプロパティを使えばセル名が取得できる。
cell = sheet.cell(2,3)
print(cell.coordinate) # セル名が表示される
# C2

データが何行まであるか分からない時

  • GASではgetLastRow()で取得できた。
  • 同様にmax_rowmax_columnで取得できる。
  • ただし、罫線などが入っている場合は有効範囲が罫線の最後までになってしまうので注意
    (解決策としては取り出した後に切ないが空かどうかを判定する)
rows = sheet["A1":"G55"]
for row in rows:
    values = [cell.value for cell in row]
    if values[0] is None: break #セル未入力の場合はNoneになる
    print(values)
  • iter_rowsでも取り出しが可能。さらにmin_rowmax_rowで取り出す範囲の指定が可能。
for row in sheet.iter_rows(min_row = 3, max_row = 7):
    values = [cell.value for cell in row]
    if values[0] is None: break #3行目以降7行目までが取り出される
    print(values)

シートの操作

  • create_sheetで新規のシートを作成できる
sheet = book.create_sheet(title="シート名")
  • copy_worksheetでシートをコピーできる
sheet = book.copy_worksheet(book["シート名"])
  • シート名を変更する
sheet.title = "変更シート名"
  • シートを削除する
book.remove(book["シート名"])

おまけ

エクセルを暗号化したり復号化したりすることも可能。
ライブラリのおかげでエクセルはかなり使えるようになっている。

次回はセルの装飾周りかなー

0
0
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
0
0