我正在使用一个为请求生成随机标记的 excel 文件的系统,我需要从 Excel 报表标题中解析信息。需要明确的是,我不是要获取排名、ID、名称、发件人或通过,而是尝试从此示例中提取日期。输出文件示例
您会注意到,我想要的信息不包含在任何单元格中,而是包含在Excel报表格式中。当我将整个文件作为 pandas 数据帧导入时,日期不存在,因为数据未存储在任何单元格中。
这是文件中唯一格式化为这样的字段,因此我尝试读取整个文件并使用如下所示的正则表达式将其提取:
import re
matches = []
with open('Roster Report.xlsx') as f:
for line in f:
matches += re.findall('[[0-9]{2}/[0-9]{2}/20[0-9]{2}]',line)
matches
但我得到UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 56: character maps to <undefined>
我还在包中看到xlrd
使用dump(header="[10/24/2018]"
写入 Excel 标头的能力,但我在文档中没有看到如何从标头读取数据。
这些评论实际上通过将我指向openpyxl
来帮助我获得答案。如果其他人有,我会在这里发布它。
import openpyxl
wb = openpyxl.load_workbook('Roster Report.xlsx')
header_text = str(wb.active.HeaderFooter)
wb.close()
我在xlrd
中没有看到读取标题的方法,只能写入它。