2016-08-08 18 views
1

Ich möchte die Daten in der zweiten und dritten Spalte aus XLSX-Datei gelesen.So lesen Sie Daten in einer bestimmten Spalte der XLSX-Datei mit Python-Skript

import xlrd 

workbook = xlrd.open_workbook("C:/Users/File.xlsx","rb") 
sheet = workbook.sheet_by_index(0) 
for row in range(sheet.nrows): 
    cols = (sheet.row_values(row,1)) and (sheet.row_values(row,2)) 
    print(cols) 

Aber ist unten gibt Fehler, wenn ich oben Skript ausgeführt ..

biff_version = bk.getbof(XL_WORKBOOK_GLOBALS) File 
C:\Python27\.....\xlrd_init_.py", line 1323, in getbof raise 
XLRDError('Expected BOF record; found 0x%04x' % opcode) 
xlrd.biffh.XLRDError: Expected BOF record; found 0x4b50 
+0

biff_version = bk.getbof (XL_WORKBOOK_GLOBALS) Datei "C: \ Python27 \ ..... \ xlrd \ __ init__.py", Zeile 1323, in getbof raise XLRDError ('Expected BOF record; gefunden 0x% 04x '% opcode) xlrd.biffh.XLRDError: Expected BOF record; gefunden 0x4b50 – Pkde

+0

Mögliches Duplikat von [Öffnen und Lesen einer Excel .xlsx-Datei in Python] (http://stackoverflow.com/questions/18532893/opening-and-reading-an-excel-xlsx-file-in-python) –

Antwort

0

Versuchen Sie, diese

import xlrd 

workbook = xlrd.open_workbook("C:/Users/File.xlsx","rb") 
sheets = workbook.sheet_names() 
required_data = [] 
for sheet_name in sheets: 
    sh = workbook.sheet_by_name(sheet_name) 
    for rownum in range(sh.nrows): 
     row_valaues = sh.row_values(rownum) 
     required_data.append((row_valaues[0], row_valaues[1])) 
print required_data 
0

Dieses Beispiel alle den Inhalt der Excel-Tabelle lesen und legt es in einer Matrix (Liste von Listen), können Sie dann können die Spalten Sie benötigen:

import xlrd 

workbook = xlrd.open_workbook("C:/Users/File.xlsx","rb") 
sheet = workbook.sheet_by_index(0) 
rows = [] 
for i in range(sheet.nrows): 
    columns = [] 
    for j in range(sheet.ncols): 
     columns.append(sheet.cell(i, j).value) 
    rows.append(columns) 
print rows