[font="arial, helvetica, sans-serif"]Hallo Forenmitglieder,[/font]
[font="arial, helvetica, sans-serif"] [/font]
[font="arial, helvetica, sans-serif"]ich habe wie der Betreff schon andeutet ein Problem eine Datenbankabfrage in eine selbst erzeugte xlsx-Datei zu schreiben.[/font]
[font="arial, helvetica, sans-serif"]Die XLSX-Datei bekomme ich aus dem Script heraus erzeugt und kann dort auch fest definierte werte eintragen, allerdings würde ich die fest definierten Werte durch variable Werte die ich aus einer Datenbank abfrage erhalte ersetzen.[/font]
[font="arial, helvetica, sans-serif"]mein Code sieht wie folgt bisher aus:[/font]
#!/usr/bin/env python[/color]# -*- coding: utf8 -*-import xlsxwriterfrom datetime import datetimeimport MySQLdb_encoding = 'utf-8'# Create a workbook and add a worksheet.workbook = xlsxwriter.Workbook('Pruefauftrag.xlsx')worksheet = workbook.add_worksheet()# Connect to Databasemysql = MySQLdb.connect(host='localhost', user='root', passwd='DGUVV3', db='testdb')cursor = mysql.cursor()query = """Select* testdb (seriennummer, klassifikation, hnr, liegenschaft, gebaeude, etage, raum, verantwortlicher, eib, naechstepruefung FROM testdb WHERE naechstepruefung < = Date_SUB(localtime(), INTERVAL 1 MONTH ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"""# Add a bold format to use to highlight cells.bold = workbook.add_format({'bold': 1})# Add an Excel date format.date_format = workbook.add_format({'num_format': 'mmmm d yyyy'})# Adjust the colum width.worksheet.set_column(1, 1, 15)# Write some data headers.worksheet.write('A1', 'Seriennummer', bold)worksheet.write('B1', 'Klassifikation', bold)worksheet.write('C1', 'HNR', bold)worksheet.write('D1', 'Liegenschafft', bold)worksheet.write('E1', 'Geb.', bold)worksheet.write('F1', 'Etage', bold)worksheet.write('G1', 'Raum', bold)worksheet.write('H1', 'Verantwortlicher', bold)worksheet.write('I1', 'EiB', bold)worksheet.write('J1', 'NaechstePruefung', bold)# Some data we want to write to the worksheet.expenses = ( ['CNG005046F', 'Bildschirm', '0716', 'FRB', '9A', 'UG', '005', 'Fischer', 'false', '2016-04-01'], ['CNG005045D', 'Bildschirm', '0716', 'FRB', '9A', 'UG', '006', 'Fischer', 'false', '2016-04-02'],)# Start from the first cell. Rows and columns are zero indexed.row = 1col = 0# Iterate over the data and write it out row by row.for Seriennummer, Klassifikation, HNR, Liegenschafft, Geb, Etage, Raum, Verantwortlicher, EiB, date_str, in (expenses): # Convert the date string into a datetime object. date = datetime.strptime(date_str, "%Y-%m-%d") worksheet.write_string (row, col, Seriennummer ) worksheet.write_string (row, col + 1, Klassifikation ) worksheet.write_string (row, col +2, HNR ) worksheet.write_string (row, col +3, Liegenschafft ) worksheet.write_string (row, col +4, Geb ) worksheet.write_string (row, col +5, Etage ) worksheet.write_string (row, col +6, Raum ) worksheet.write_string (row, col +7, Verantwortlicher ) worksheet.write_string (row, col +8, EiB ) worksheet.write_datetime(row, col +9, date, date_format ) row += 1workbook.close()cursor.close()mysql.commit()mysql.close()[color=#000000]
[/color]
[font="arial, helvetica, sans-serif"]mein query soll meine Datenbankabfrage sei und soll wenn alles richtig ist die selben Daten zurück liefern wie ich sie unter expenses fest definiert habe.[/font]
[font="arial, helvetica, sans-serif"] [/font]
[font="arial, helvetica, sans-serif"]Ich hoffe es gibt hier welche die mir bei meinem Problem weiterhelfen können.[/font]
[font="arial, helvetica, sans-serif"] [/font]
[font="arial, helvetica, sans-serif"]Ich bedanke mich im Voraus[/font]
[font="arial, helvetica, sans-serif"] [/font]