python - 无法使用 pandas 或 openpyxl 在任何 .xlsx 文件的单元格中检测到 EUR
问题描述
我使用了 pandas read_excel,对于这些单元格,只有数值而不是“EUR”(货币)。
然后我尝试使用 openpyxl 读取单元格值并输入“int”而不是“str”。
使用像 Libre calc 或 MS excel 这样的 excel 编辑器,我们可以将货币转换为所需的输出,但是,我需要找到一种方法来检测EUR
为货币并将相应的值存储在我的数据库中。
我哪里错了?有没有其他方法可以检测到它?
我已在此处附上 excel 表.. Google 表链接..
解决方案
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
推荐阅读
- python-3.x - 在 aws lambda 中导入 python 模块
- json - 使用 Angular 2 在 json 文件中搜索
- php - PHP preg_replace 标题(非英文字符)清理 slug 不起作用
- vue.js - 使 Vue 模板等待 AJAX 调用返回的全局对象
- c - 使用 __builtin_popcount 或其他内在函数来处理 _mm256_movemask_pd 比较位图的结果?
- angular-material - 更改垫旋转器的颜色
- paraview - Paraview 中的多个摄像机轨道
- react-native - 更改文本时错误未定义不是函数
- stripe-payments - 是否可以向 Stripe 查询属于任何客户的信用卡?
- python - 双三次插值 Python