echo("備忘録");

IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。

【python】pythonでExcelを操作する

去年、python関連の書籍を探してたら、こんな本があった。

退屈なことはPythonにやらせよう

pythonといえば、AIや機械学習...と思っていたけど、それ以外にもルーティンワーク系処理の自動化にもなかなか便利。

で、今回はこの本にもある「Excel操作」について、ちょこっと触れてみた。
(ExcelPythonにも対応するらしいし。)

ブックを開く&シートの値取得

import openpyxl as pyxl
from openpyxl import load_workbook

## 既存のブックを開く場合
work_book = load_workbook('test.xlsx')
work_sheet = work_book.get_sheet_by_name('Sheet1')

## 新規WorkBookを作成する場合
new_workbook = pyxl.Workbook()

## 新規シートを作成して取得。
## もちろんシート名指定以外にも、やり方はある。(あくまで一例)
new_workbook.create_sheet('New_Sheet', 0)
new_sheet = new_workbook.get_sheet_by_name('New_Sheet')

## 値をCell形式で取得する方法
target_cell = work_sheet.cell(row=1, column=1)
    
## Range形式で取得する方法
target_range = work_sheet['A1']

## 複数範囲で取得する方法。
## coordinameはアドレスを取得できる。
for rows in work_sheet['A1':'C3']:
    for col in rows:
        print(col.coordinate, col.value)


シートの値設定&ファイルの保存

## 値&数式の設定(Cells形式&Range形式)
new_sheet.cell(row=1, column=3).value = 'abc'
new_sheet["B2"] = "SUM(A3:C3)"

## シートを保存(物理ファイルとして)
new_workbook.save('test2.xlsx')


まだまだ本当に基本的なところしか網羅できてないけど、もっといろいろ知識を増やしていきたいなあ。

てか、Excelpythonが使用できれば、ソースファイルの共有とか、いろいろ可能性が出てくるので、今後に期待したいところです。