Excelファイルへの書き込みを行うPythonのライブラリxlwtについて調べていて「PythonでExcelファイルを読み込み・書き込みするxlrd, xlwtの使い方」で、興味深い記述を見かけました。
Worksheetオブジェクトのwrite()メソッドに関する、以下の記述です。
既に入力した位置のセルを指定するとエラー。
xlwtを使ってセルの上書きを確認するスクリプト
以下のようなスクリプトを試してみました。
bk = xlwt.Workbook()
sh = bk.add_sheet('セルの上書き確認')
sh.write(0, 0, 'This is A1')
bk.save(r'C:\temp\foo.xls')
bk.save(r'C:\temp\foo2.xls')
上記のスクリプトを実行すると、A1セルに「This is A1」と入力されたfoo.xlsファイルがCドライブtempフォルダーに作成されますけれど、以下のような例外が発生します。
Exception: Attempt to overwrite cell: sheetname='セルの上書き確認' rowx=0 colx=0
xlwtを使ってセルの上書きを行うには
Workbookオブジェクトのadd_sheet()メソッドの引数cell_overwrite_okにTrueを指定すると、データ入力済のセルに書き込みが可能になります。
bk = xlwt.Workbook()
sh = bk.add_sheet('セルの上書き確認', cell_overwrite_ok=True)
sh.write(0, 0, 'This is A1')
bk.save(r'C:\temp\foo.xls')
bk.save(r'C:\temp\foo2.xls')
上記のスクリプトを実行すると、Cドレイブtempフォルダーに、「This is A1」とA1セルに入力されたfoo.xlsファイルと、「overwrite」とA1セルに入力されたfoo2.xlsファイルが作成されます。
最終更新日時:2019-10-21 10:34