使用Python读取Excel文本标题

时间:2018-10-25 19:23:43

标签: python excel

我正在使用一个为请求生成随机标记的excel文件的系统,我需要从Excel Report标头中解析信息。需要明确的是,我不是要获取等级,ID,名称,发件人或直通车,而是要从此示例中提取日期。 Output file example

您会注意到,我想要的信息没有包含在任何单元格中,而是包含在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标头的功能,但是我在文档中没有看到如何从标头读取数据。

1 个答案:

答案 0 :(得分:0)

这些评论实际上使我指向openpyxl,从而帮助我得到了答案。我要把它贴在这里。

import openpyxl
wb = openpyxl.load_workbook('Roster Report.xlsx')
header_text = str(wb.active.HeaderFooter)
wb.close()

我没有在xlrd中看到一种方法来读取标头,而只写标头