簡體   English   中英

使用 xlwings 快速寫入 xlsm

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM