2016-04-20 7 views
1

Ich habe ein Python-Skript erstellt, das aus einem SQL Server-Tabelle liest 56 Säulen unter Verwendung eines sql_command BlockPython XLSXWRITE Gibt es eine Begrenzung für die Anzahl der Spalten, die erstellt werden können?

... 
    db_cursor.execute(sql_command) 
    rows = db_cursor.fetchall() 
    worksheet.set_column('A:A',11)  #[BRAND] [varchar](10) NULL, 
... 
    worksheet.set_column('BD:BD',11)  #[NEWBUSINESS_RENEWAL] [varchar](1) NULL 
... 
    worksheet.write('A1','BRAND', Headerfm) 
... 
    worksheet.write('BD1','NEWBUSINESS_RENEWAL', Headerfm) 

An diesem Punkt I enthalten, auf Zeilen einer for-Schleife verwenden, und die Zeilen- und Spaltenschreib

for Brand, ...NEWBUSINESS_RENEWAL in (rows) 
     worksheet.write(xlrow, xlcol, BRAND, Cellfm2) 
     worksheet.write(xlrow, xlcol + 1, SUBCOMPANY, Cellfm1) 
... 
     worksheet.write(xlrow, xlcol + 55, NEWBUSINESS_RENEWAL, Cellfm1) 
     xlrow += 1 
    workbook.close() 

Dies wirft dann den Fehler oder Nachricht Traceback (jüngste Aufforderung zuletzt): Datei "D: \ Cognos_Testing \ Esri \ python \ xlsexport_v2.py", Linie 282, in für BRAND, subcompany, GROUP_, COVERAGE, POLICY_NUMBER , POLICY_INFORCE_DATE, POLIC Y_START_DATE, POLICY_END_DATE, POLCOUNT, RISKCOUNT, SUM_INSURED, Registrierung, Marke, Modell, YEAR_MANUFACTURED, Ort, Postleitzahl, State_, street_number, STREET_NAME, STREET_SUFFIX, STREET_OTHERDETAILS, GEOCODED_TOWN, GEOCODED_POSTCODE, GEOCODED_STATE, GEOCODED_STREET_NAME, INSURED_NAME, INSURED_HOMEPHONE, INSURED_WORKPHONE, INSURED_MOBEPHONE, INSURED_OTHERPHONE, INSURED_EMAIL, SECOND_INSURED_NAME, SECOND_INSURED_HOMEPHONE, SECOND_INSURED_WORKPHONE, SECOND_INSURED_MOBEPHONE, SECOND_INSURED_EMAIL, AGENCY_NAME, vermittler, FLOOD_FLAG, FLOOD_PREMIUM, FLOOD_COVERAGE, FLOOD_RISK_CONTENTS, FLOOD_RISK_BUILDING, BUSHFIRE_RATING, Embargo, YEAR_CONSTRUCTED, CONSTRUCTION_TYPE, ROOF_TYPE, WALLTYPE, FLOORTYPE, UNIT_FLAG, HH_HIGH_RISK_AREA_FLAG, POLICY_STATUS, POLICY_PAID, NEWBUSINESS_RENEWAL in (Zeilen): ValueError: zu viele Werte zum Entpacken

+1

Sieht so aus, als hätten Sie weniger Spalten als andere in einer Ihrer Zeilen. Bitte posten Sie die vollständige Rückverfolgung Ihrer Fehlermeldung. – Selcuk

+0

Das Problem ist mit Ihrer 'für' Linie, wie ich vermutete. Sie haben weniger als 35 Spalten in Ihren Zeilen. Versuchen Sie, mit 'for row in rows 'zu loopen:' und drucken Sie die 'row' innerhalb der Schleife, um zu prüfen, ob dies der Fall ist. – Selcuk

+0

Entschuldigung, ich habe die falsche Spur zurück verwendet. Ich habe die erste Spur bearbeitet und hinzugefügt. – AussiePete2015

Antwort

1

Es scheint, dass das Problem des Autors gelöst wurde, ohne die Questi zu beantworten on, aber nichtsdestoweniger Dokumentation says dass "XlsxWriter Excels Arbeitsblatt Grenzen von 1.048.576 Zeilen von 16.384 Spalten unterstützt."

Verwandte Themen