我使用openpyxl打開文件,編輯一些單元格並保存更改。 下面是一個例子:openpyxl 2.4.2:通過公式生成的單元格值在保存後爲空
import openpyxl
book = openpyxl.load_workbook(sheet_path)
sheet = book.active
for row in range(sheet.max_row):
index = row + 1
sheet.cell(row=index, column=1).value = "something"
book.save(sheet_path)
的問題是,當我保存文件時,其他細胞被修改。實際上,包含公式的表單中的單元格「損壞」,文件大小大大減少,並且當我使用其他腳本讀取表單時,包含公式的單元格會報告爲空。但是當我打開紙張時,一切看起來很正常,當我保存時,一切都被修復,文件大小恢復正常。我認爲問題來自於openpyxl在保存時沒有「計算」公式。這將減小文件大小並需要手動打開/保存才能獲得真實的單元格值。如果不徹底改變我使用的庫,我找不到任何方法來解決此問題。 任何幫助,將不勝感激,謝謝!
您可以有公式或最近計算的值,從來都沒有。 –
請解釋:「* ...包含公式的單元格被報告爲空。*」。這不可能是這樣,因爲在文件打開重新計算公式完成。 – stovfl
運行腳本之後,我使用了一個讀取單元格的JavaScript腳本。我認爲這個腳本將這些單元看作是空的,因爲這個表是由一個腳本打開的。據我所知,Excel打開時會重新計算公式,但由於工作表需要保存才能真正保留這些值,因此腳本無法看到這些值。 –