【问题标题】:Python read SAS generated XML type .xls filePython 读取 SAS 生成的 XML 类型的 .xls 文件
【发布时间】:2013-09-24 03:55:03
【问题描述】:

我正在尝试从数百个 SAS 生成的 .xls 文件中提取选项卡。我没有运气就尝试了以下方法。我的xlrd 版本是0.9.2。

import xlrd 
book = xlrd.open_workbook('out_1.xls')

错误信息是:

Traceback (most recent call last):[Finished in 0.2s with exit code 1]
  File "I:\Dropbox\Sas data\sacwin\test.py", line 3, in <module>
    book = xlrd.open_workbook('out_1.xls') # Open an .xls file
  File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 435, in open_workbook
    ragged_rows=ragged_rows,
  File "C:\Python27\lib\site-packages\xlrd\book.py", line 91, in open_workbook_xls
    biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
  File "C:\Python27\lib\site-packages\xlrd\book.py", line 1258, in getbof
    bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8])
  File "C:\Python27\lib\site-packages\xlrd\book.py", line 1252, in bof_error
    raise XLRDError('Unsupported format, or corrupt file: ' + msg)
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '<?xml ve'

在编辑器中打开.xls 文件后,标题看起来像:

<?xml version="1.0" encoding="windows-1252"?>

<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:x="urn:schemas-microsoft-com:office:excel"
          xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office">

您能否就如何解析这些文件给我一些建议?谢谢!

【问题讨论】:

    标签: python xml excel xlrd


    【解决方案1】:

    我也在寻找解决这个问题的方法。我可以告诉你,文件格式是 xml,但早于 Excel 2007 'Office Open XML (ECMA-376)' 格式(我认为它是 SpreadsheetML),所以 xlrd 不支持它。

    如果没有可用的 python 库,并且您对需要处理的文件的结构有很好的先验知识,我只会使用 xml 阅读器。

    问候 戴夫

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2016-11-29
      • 2021-08-12
      • 1970-01-01
      相关资源
      最近更新 更多