2012-03-26 10 views
-1
file_name = files.blobstore.create(mime_type='application/ms-excel', _blobinfo_uploaded_filename='sample.xls') 
    wbk = xlwt.Workbook() 
    sheet = wbk.add_sheet('Sheet 1') 
    stringa = str(newfile.text) 
    s3 = stringa.split('\n') 
    i=1 
    for riga in s3: 
     s2=riga.split() 
     try: 
      x = float(s2[0]) 
      y = float(s2[1]) 
      sheet.write(i, 1, '%g' %x) 
      sheet.write(i, 2, '%14.3e' %y) 
     except: 
      sheet.write(i, 1, '%s' %s2[0]) 
      sheet.write(i, 2, '%s' %s2[1]) 
     i=i+1 

File "/base/data/home/apps/s~marco-busso/1.357756583016056739/helloworld.py", Linie 140, in der Post sheet.write (i, 1, '% s'% s2 [0]) IndexError: Listenindex außerhalb des BereichsIndexliste Fehler Google App Engine

Warum?

Antwort

1

Anscheinend s2 ist leer, was bedeutet, riga ist eine leere Zeichenfolge. Hat stringa mehr als eine '\n' in einer Reihe? Überprüfen Sie newfile.text, vielleicht ist die eine leere Zeile dort.

die Fehler zu vermeiden, können Sie den Schleifenkörper in einer if Anweisung wickeln, wie zum Beispiel:

for riga in s3: 
    if riga: 
     s2=riga.split() 
     try: 
      x = float(s2[0]) 
      y = float(s2[1]) 
      sheet.write(i, 1, '%g' %x) 
      sheet.write(i, 2, '%14.3e' %y) 
     except: 
      sheet.write(i, 1, '%s' %s2[0]) 
      sheet.write(i, 2, '%s' %s2[1]) 
     i=i+1 
+0

Danke .... die letzte Zeile ist empty.Can I Steuerelemente hinzufügen Leerzeile entfernen? – user1281174

+0

Natürlich. Zum Beispiel können Sie den Inhalt der 'for'-Schleife in eine' if riga: 'Anweisung einschließen. –

+0

Ich habe ein Beispiel hinzugefügt. –