大pandas阅读excel格式

在格式化后如何获得电子表格的值? 即时通讯工作与货币格式的电子表格

这例如:

ITEM NAME UNIT PRICE item1 USD 99 item2 SGD 45 

但“USD”和“SGD”这两个术语是使用excel的格式化function添加的,并且pandas的read_excel函数看不到这些术语。 我会得到的价值,但不是货币的名称。 我只能在电子表格上工作,因为我有各种各样的电子表格,大约有6-7张,我希望有一个pandas(或python)级别的解决scheme,而不是一个Excel级别的解决scheme。

多谢你们。

对丹尼尔来说,这就是我实现'xlrd'引擎的方式,它似乎没有做任何事情。

 excel = pd.ExcelFile('itemlist.xlsx', sheetname=None) master = pd.DataFrame(None) for sheet in excel.sheet_names: df = pd.read_excel(excel,sheet,header=2, engine='xlrd') master=master.append(df) 

没有什么好办法做到这一点。 pandas没有数字格式的知识,并且xlrd似乎无法从.xlsx文件读取格式 – 请参阅此处

你可以使用openpyxl来实现这一点,它至less可以访问数字格式,但是看起来你必须自己实现所有的parsing逻辑。

 In [26]: from openpyxl import load_workbook In [27]: wb = load_workbook('temp.xlsx') In [28]: ws = wb.worksheets[0] In [29]: ws.cell("B2") # numeric value = 4, formatted as "USD 4" Out[29]: <Cell Sheet1.B2> In [30]: ws.cell("B2").value Out[30]: 4 In [31]: ws.cell("B2").number_format Out[31]: '"USD "#' 

对任何人有同样的问题,我做到了每个工作表分成CSV,使用这个答案

它保留电子表格中显示的货币详细信息,虽然有点麻烦,但无论如何也完成了这项工作。