car*_*rlo 8 python excel pandas
我如何在格式化后获取电子表格的值?我正在处理货币格式的电子表格
这例如:
ITEM NAME UNIT PRICE
item1 USD 99
item2 SGD 45
Run Code Online (Sandbox Code Playgroud)
但是术语“USD”和“SGD”是使用excel的格式化功能添加的,pandas的read_excel函数看不到这些术语。我会得到值,但不会得到货币名称。我只能按原样处理电子表格,并且考虑到我有各种电子表格,每个电子表格大约有 6-7 张,我希望有一个 Pandas(或 Python)级别的解决方案,而不是一个 excel 级别的解决方案。
谢谢你们。
对丹尼尔来说,这就是我实现“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)
Run Code Online (Sandbox Code Playgroud)
没有什么好方法可以做到这一点。 pandas不了解数字格式,并且xlrd似乎无法从 .xlsx 文件中读取格式 - 请参阅此处
您可以使用它openpyxl来完成此操作,它至少可以访问数字格式,但看起来您基本上必须自己实现所有解析逻辑。
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 "#'
Run Code Online (Sandbox Code Playgroud)