web-dev-qa-db-ja.com

openpyxlを使用したExcelシートへのデータの書き込みが機能しない

openpyxlを使用して、Excel-Workbookからデータを読み取り、この同じExcel-Workbookにデータを書き込もうとしています。 Excel-Workbookからのデータの取得は正常に機能しますが、Excel-Workbookへのデータの書き込みは機能しません。以下のコードを使用して、A1のセルSheet1から値を取得して出力します。次に、セルA2A3にいくつかの値を入れようとします。これは動作しません。

from openpyxl import Workbook
from openpyxl import load_workbook


wb = load_workbook("testexcel.xlsm")
ws1 = wb.get_sheet_by_name("Sheet1")

#This works:
print ws1.cell(row=1, column=1).value 

#This doesn't work:
ws1['A2'] = "SomeValue1"

#This doesn't work either:
ws1.cell(row=3, column=1).value = "SomeValue2"

コードは正しいと確信しています...ここで何が問題になっていますか?

6
steady_progress

保存機能が不足していると思います。以下に行を追加してみてください。

from openpyxl import Workbook
from openpyxl import load_workbook


wb = load_workbook("testexcel.xlsm")
ws1 = wb.get_sheet_by_name("Sheet1")

#This works:
print ws1.cell(row=1, column=1).value 

#This doesn't work:
ws1['A2'] = "SomeValue1"

#This doesn't work either:
ws1.cell(row=3, column=1).value = "SomeValue2"

#Add this line
wb.save("testexcel.xlsm")
10
Woodsy

これを使用して値を書き込みます。

ws1.cell(row=1, column=1,value='Hey')

一方、以下は値を読み取ります。

ws1.cell(row=1, column=1).value 
1
Abul