2016-07-26 142 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