使用应用的数字格式openpyxl读取单元格值?雷多克斯

2024-06-24 11:35:27 发布

您现在位置:Python中文网/ 问答频道 /正文

Python 2.7、openpyxl 2.4.x

我试图读取一个单元格,它是excel中的日期值(“05/01/2016”),并且应用了自定义数字格式(“yyyymm”),因此它显示为“201605”。最后我想得到的是应用自定义数字格式后的值(即用户在excel(“201605”)中看到的值)。你知道怎么用openpyxl来做吗?在

注意:我不能简单地将日期重新格式化为yyyymm,因为用户可能会更改自定义格式,我需要应用自定义格式后的最终结果。所以也许openpyxl中有一种方法可以在读取的单元格中应用自定义格式?在

我知道这和这篇文章很相似,但我不太确定如何在我的环境中应用它

提前谢谢你的帮助。在


Tags: 方法用户环境格式数字excelopenpyxl篇文章
1条回答
网友
1楼 · 发布于 2024-06-24 11:35:27

它没有实现。 你要找的是cell.number_格式. 尝试以下操作:

def pyDateFormat(nf):
  import re
  """Convert xlsx cell.number_format to Python date Format."""
  #xlsx Format   = 'YYYYMMDD', 'YYYY\\-MM\\-DD'
  #Python Format = '%Y%m%d'
  nf = re.sub(r'\\',r'',nf,0,re.IGNORECASE) #Remove Escapes
  nf = re.sub(r'([^Y]*)(Y+)(.*)',r'\1%Y\3',nf,0,re.IGNORECASE) #Change YYYY to %Y
  nf = re.sub(r'([^M]*)(M+)(.*)',r'\1%m\3',nf,0,re.IGNORECASE) #Change MM to %m
  nf = re.sub(r'([^D]*)(D+)(.*)',r'\1%d\3',nf,0,re.IGNORECASE) #Change DD to %d
  return nf
#end def pyDateFormat

在这一点上,你需要格式化单元格.值执行:

^{pr2}$

使用Python:3.4.2-openpyxl:2.4.1-LibreOffice:4.3.3.2测试

相关问题 更多 >