openpyxl / xlwings
xlwings | openpyxl | |
動作環境 | windows/macOS | windows/macOS/linux |
サポートしているファイル形式 | 全て | Excel2010以降のxlsx/xlsm |
python対応バージョン | python3.6 | python3.6 |
excelとの互換性 | 対応していない計算式が存在する対応していない計算式を含むブックを読み込んで保存すると、その計算式が消える | |
excelマクロの呼び出し | o | x |
処理速度 | 遅い | 速い |
pip install xlwings
import xlwings as xw
book = xw.Book()
sheet = book.sheets.add(“MySheet”)
sheet.range(“A1”).value [[1,2],[3,4],[5,6]]
xw.Save(“mybook.xlsx”)
xw.Close()
pip install openpyxl
import openpyxl
Excelファイルを開く
数式が入力されているセルからは「数式」が取得されるので、
計算結果が必要な場合はdata_only=Trueを指定する
wb = openpyxl.load_workbook(‘/Users/Desktop/xxx.xlsx’, data_only=True)
シートの取得
sheet = wb[‘sheet1’]
もしくはsheet = wb.worksheets[0]
シートをコピー(コピーしたシートは末尾にCopyがつく)
copy = wb.copy_worksheet(sheet)
シートの削除
wb.remove(copy)
値を書き込む
sheet.cell(1,1).value = 0
値を読み込む
value = sheet.cell(1,1).value
セルの書式設定
sheet.cell(1,1).number_format = ‘0.00’
もしくはws[‘A2’].number_format = ‘yyyy年mm月dd日’
フォントの設定
from openpyxl.styles import Font
sheet.cell(1,1).font = Font(bold=True, italic=True)
ブックを保存
wb.save(‘./xxx.xlsx’)
ブックを閉じる
wb.close()
最終行を取得する
row = 1
while sheet.cell(row,1).value is not None:
row += 1
lastrow = row
繰り返し(1シートずつ)
for ws in wb:
print(ws.title)
繰り返し(1行ずつ)
for row in wb[‘sheet1’].rows: