2017-07-05 3 views
1

Ich muss 16 Zeilen aus 2 Spalten in einer Excel-Tabelle mit vielen Arbeitsblättern ziehen. Ich habe herausgefunden, wie man die Ausgabe von der Stelle druckt, an der die Ausgabe starten soll, aber ich möchte nur 16 Zeilen. Mein Skript druckt ganz nach unten. Hier ist das Skript:Python-Extrakt Bereich von Zellen aus Arbeitsblatt

import xlrd 
import csv 

wb = xlrd.open_workbook('myworkbook.xlsx').sheet_by_index(16) 
mydata = open("myoutput.csv", 'w') 

try: 
    for rownum in range(47, wb.nrows): 
     ipaddr.write(str(wb.cell(rownum, 4).value)+ ", " +(wb.cell(rownum, 6).value)+"\n") 
finally: 
    mydata.close() 

Wenn ich versuche, den Bereich so zu beschränken:

für rownum in Bereich (47, 63 wb.nrows):

es nur druckt Zeile 47. Irgendwelche Ideen Wie kann ich die Ausgabe auf 16 Zeilen beschränken? TIA

Antwort

0

Wie wäre:

import xlrd 
import codecs 

wb = xlrd.open_workbook('myworkbook.xlsx').sheet_by_index(16) 
with codecs.open('myoutput.csv', 'w') as mydata: 

for rownum in range(47, min(63,wb.nrows)): 
    mydata.write(str(wb.cell(rownum, 4).value) + ", " + str(wb.cell(rownum, 6).value) + "\n") 

mydata.close() 
wb.close() 
+0

Works !!!!!!! Vielen Dank!!!!! – nlcorbett

Verwandte Themen