2016-07-26 141 views
0

我使用xlrd转换我的.xls Excel文件到CSVfile然而,当我尝试打开工作簿我的程序崩溃发送错误消息转换Excel以CSV蟒蛇

bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8]) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/xlrd/book.py", line 1224, in bof_error 
    raise XLRDError('Unsupported format, or corrupt file: ' + msg) 
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found 'Chrom\tPo' 

Chrom\tPo是我的一部分头文件的Excel文件,但我不明白什么是Excel文件的错误,以及如何改变它。

程序崩溃权当我尝试使用xlrd.open_workbook(“Excel文件”)

+0

你使用的是什么版本的xlrd,什么类型的Excel文件(xls vs xlsx)? – Dan

+0

转换文件时出现错误,或者在尝试打开文件时转换后出错? – Will

+0

Dan - 我使用的xlrd版本是1.0.0,我使用的是.xls。当我尝试xlrd.open_workbook(excelfile)时转换文件时发生错误 –

回答

0

我会用openpyxl本打开Excel文件。

import openpyxl 
wb = openpyxl.load_workbook(file_name) 
ws = wb.worksheets[page_number] 
table = [] 
for row_num in range(ws.get_highest_row()): 
    temp_row = [] 
    for col_num in range(ws.get_highest_column()): 
    temp_row.append(ws.cell(row=row_num, col=col_num).value) 
    table.append(temp_row[:]) 

这会给你该纸张,作为一个2-d列表,然后你就可以写出来,以CSV或作为你要使用的内容。

如果你坚持xlrd不管出于什么原因,你可能只是需要将文件转换从xlsxlsx

+0

我意识到错误是即使该文件已保存名称.xls它实际上是一个制表符分隔文件,我需要保存它作为一个xls文件,然后一切正常..谢谢 –

+0

很高兴帮助...或尝试无论如何:P祝你好运! – Will