【问题标题】:xlsx to csv without formulas in python, openpyxl or win32comxlsx 到 csv,没有 python、openpyxl 或 win32com 中的公式
【发布时间】: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


【解决方案1】:

data_only=True仅适用于用openpyxl读取文件:该选项对写入文件没有意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 2021-10-24
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    相关资源
    最近更新 更多