[英]Fast writing to xlsm with xlwings
我正在嘗試使用 xlwings 0.20.2 將許多浮點數和字符串寫入 xlsm 文件。
盡管以下方法有效,但我希望它更快:
sht.range('A1').options(transpose=True).value = [float1, float2]
sht.range('B7').value = string1
sht.range('A4').options(transpose=True).value = [string2, float3]
...
我已經認識到
sht.range('A1').options(transpose=True).value = [float1, float2]
比
sht.range('A1').value = float1
sht.range('A2').value = float2
因此,我的想法是在一個列表中收集所有浮點數和字符串:
output = [[None] * 8, [None] * 8]
output[0][0] = float1
output[0][1] = float2
output[1][8] = string1
...
並將其寫入 Excel 表。
問題在於,每次我在寫出過程中點擊None
時,它都會刪除相關單元格的內容(例如A3
)。
你有什么建議可以避免這種情況,或者有什么替代方法的想法嗎? 正如我所說,這完全與我所要求的性能有關。
我寫了一個自定義轉換器,就像這里描述的那樣,但它只是在write_value()
方法中不返回任何值,如果值為None
它仍然會刪除單元格的內容。
您需要讀取整個范圍,然后在 Python 端更改您想要的值並將其寫回。 如果您的范圍包含公式,您可以使用myrange.formula
屬性來讀取公式 - 可以再次通過.value
將它們寫出。 這樣,您就不會更改現有單元格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.