Ich versuche, Daten aus einer .xlsx-Datei in eine MySQL-Datenbank mit Python zu lesen.Schnellste Möglichkeit, .xlsx-Datei mit Python zu lesen
Hier ist mein Code:
wb = openpyxl.load_workbook(filename="file", read_only=True)
ws = wb['My Worksheet']
conn = MySQLdb.connect()
cursor = conn.cursor()
cursor.execute("SET autocommit = 0")
for row in ws.iter_rows(row_offset=1):
sql_row = # data i need
cursor.execute("INSERT sql_row")
conn.commit()
Leider openpyxl der ws.iter_rows() ist sehr langsam. Ich habe ähnliche Methoden mit den Modulen xlrd und pandas ausprobiert. Immer noch langsam. Irgendwelche Gedanken?
Haben Sie 'pd.read_excel ('Dateiname.xlsx', 'Blattname') untersucht. To_sql (..., conn_details, ..)'? – Zero
EDIT: es scheint, Sie können row_offset nicht mit ws.rows, nur mit ws.iter_rows verwenden. und ich bin mir nicht sicher, ob ws.rows schneller ist – citizen2077
Das Blatt als CSV zu speichern und 'read_csv' zu verwenden, verringert die Zeit erheblich. 'read_excel' verwendet Python-Code, während' read_csv' C verwendet. – ayhan