有没有办法使用xlrd读取excel文件属性? 我不是指单元格表示属性,而是指一般工作簿属性。
提前多多感谢。
答案 0 :(得分:1)
除了用户名(保存工作表的最后一个人)之外,open_workbook返回的Book实例似乎没有任何属性。
我递归地转储了Book(如果是xlrd.BaseObject则转储它的 dict )并且无法以这种方式找到任何内容。测试文件肯定有 作者,公司和一些自定义元数据。
FWIW:LibreOffice似乎无法找到作者和公司(或不显示它们),但它确实在属性中显示自定义元数据。
答案 1 :(得分:0)
我找不到使用xlrd执行此操作的方法,但如果您只需要读取.xlsx文件,则可以将它们视为Zipfile并读取属性XML文件。您可以通过将.xlsx扩展名更改为.zip并在Windows上打开该文件来查看。下面是阅读自定义属性的示例。
from lxml import etree as ET
import zipfile
def get_custom_properties(filename):
zip = zipfile.ZipFile(filename)
props = zip.open('docProps/custom.xml')
text = props.read()
xml = ET.fromstring(text)
# Works on my example document, but I don't know if every
# child node will always have exactly one nested node
return {
child.attrib['name']: child[0].text
for child in xml
}