Hallo zusammen,
ich habe mir ein kleines Skript erstellt welches eine Abfrage in meiner DB vornimmt und diese in eine XLSX-Datei schreibt.
Nun möchte ich mein Skript etwas Optimieren und einerseits einen genauen Dateipfad zum ablegen der Datei angeben. (Hierfür habe ich schon einige Tipps versucht, leider ohne Erfolg)
Des weiteren möchte ich wie der Betreff schon andeutet meine XLSX-Datei nur dann erzeugen/speichern wenn in der Zelle A1 was reingeschrieben wurde.
Mein Code hierzu sieht wie folgt aus:
Code
#!/usr/bin/env python
# -*- coding: utf8 -*
import xlsxwriter
import time
import datetime
import MySQLdb
_encoding = 'utf-8'
# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Pruefauftrag.xlsx')
worksheet = workbook.add_worksheet()
# Connect to Database
mysql = MySQLdb.connect(host='localhost',
user='root',
passwd='xxxx',
db='DGUVV3')
# Some data we want to write to the worksheet.
cursor = mysql.cursor()
datenbankabfrage = "SELECT * FROM DGUV WHERE naechstepruefung <= Date_SUB( localtime(), INTERVAL 1 MONTH)"
cursor.execute(datenbankabfrage)
dberg = cursor.fetchall()
# Start from the first cell. Rows and columns are zero indexed.
row = 1
col = 0
# 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': 'dd.mm.yyyy'})
# Write some data headers.
worksheet.set_column('A:B',18)
worksheet.set_column('D:D' ,13)
worksheet.set_column('H:H' ,16)
worksheet.set_column('I:I' ,10)
worksheet.set_column('J:J' ,17)
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)
# Iterate over the data and write it out row by row.
for temp in dberg:
worksheet.write_string (row, col, temp[0] )
worksheet.write_string (row, col + 1, temp[1] )
worksheet.write_string (row, col + 2, temp[5] )
worksheet.write_string (row, col + 3, temp[6] )
worksheet.write_string (row, col + 4, temp[7] )
worksheet.write_string (row, col + 5, temp[8] )
worksheet.write_string (row, col + 6, temp[9] )
worksheet.write_string (row, col + 7, temp[10])
worksheet.write_string (row, col + 8, temp[11])
worksheet.write (row, col + 9, temp[13] ,date_format)
row += 1
workbook.close()
cursor.close()
mysql.commit()
mysql.close()
Alles anzeigen
Und vielleicht hat einer ja noch eine Idee wie ich Umlaute wie Ü,Ä,Ö und Sonderzeichen schreiben kann ohne das der Compiler doof macht.
Ich hoffe ihr könnt mir weiterhelfen.
Mit freundlichen Grüßen und einen herzliches Dankeschön im Voraus
euer DGUVV3