【问题标题】:Unable to detect EUR in a cell of any .xlsx file, using pandas or openpyxl无法使用 pandas 或 openpyxl 在任何 .xlsx 文件的单元格中检测到 EUR
【发布时间】:2018-10-22 07:29:20
【问题描述】:

我使用了 pandas read_excel,对于这些单元格,只有数值而不是“EUR”(货币)。

然后我尝试使用 openpyxl 读取单元格值并输入“int”而不是“str”。

使用 Libre calc 或 MS excel 等 excel 编辑器,我们可以将货币转换为所需的输出,但是,我需要找到一种方法来检测 EUR 作为货币并将相应的值存储在我的数据库中。

我哪里出错了?有没有其他方法可以检测到它?

我在这里附上了excel表格..Google sheets link..

【问题讨论】:

  • Excel 单元格可以配置为自行显示“货币”。这只是一个视觉,内部存储数字和属于该单元格的“将此单元格显示为货币”元信息。此处不提取欧元...
  • 我明白了,你能建议任何我可以得到这个元数据的包/参数吗?

标签: python python-3.x pandas openpyxl


【解决方案1】:

可以将 Excel 单元格配置为自行显示“货币”。这只是一个视觉,内部存储数字和属于单元格的格式元信息。您不能从单元格值中提取 EUR,而是从格式字符串中提取。

您可以查询每个单元格的格式并从中解析EUR

from openpyxl import Workbook, load_workbook

wb = load_workbook(r"stack_excel.xlsx")
ws = wb.worksheets[0]

for n in range(1,10):
    _cell = ws.cell(1,n)              # get a cell
    print((1,n), _cell.number_format) # read the number format of this cell

输出:

(1, 1) General
(1, 2) General
(1, 3) General
(1, 4) General
(1, 5) General
(1, 6) General
(1, 7) 0
(1, 8) [$EUR]\ 0
(1, 9) [$EUR]\ 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多