【发布时间】:2015-02-16 17:14:23
【问题描述】:
有没有办法我可以将 xlsx 保存为 csv,而且我还需要删除公式。
编辑-->我的excel列B“价格”每10秒通过网络服务插件更新一次(股票价格)。不知何故,如果我使用openpyxl使用选项dataonly = true保存文件,我没有得到最新的price 相反,它正在获取一些旧值(获取上次 Excel 读取工作表时存储的值)
原始文件
A B
StockId Price
13i 16.1353
14i 15.4252 --> formuala = RTD(A3,"Last", "HSC","xxx")
使用 opepyxl 创建的新文件(仅数据真实)- 已删除公式但价格不是最新的
A B
StockId Price
13i 15.1353
14i 15.3252
如果我使用 win32 com 读取 excel 文件,而不是使用 openpyxl,out 文件仍然保留公式。无论如何我可以删除公式。
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
wb = xl.Workbooks.Open(r"C:\Code\test.xlsx")
ws = xl.ActiveSheet
wb.SaveAs(r"C:\Code\test.csv")
wb.Close()
xl.Quit()
【问题讨论】:
-
"获取上次 Excel 读取工作表时存储的值"...文件中还可以存储哪些其他值?
-
首先,每当您将 Excel 工作表保存到 csv 中时,都会删除公式并保留其值。其次,生成的 csv 会将值存储在最后保存的 Excel 文件实例中。正如胡安指出的那样,你想让它做什么?请为读者澄清。
标签: python