Diagramme gelöscht beim abspeichern von Daten in eine Excel-Datei

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
LisaJ
User
Beiträge: 2
Registriert: Mittwoch 31. Januar 2018, 13:42

In Python habe ich ein Programm geschrieben, welches aus einer bereits vorhandenen Excel-datei, die Diagramme enthält, werte einließt, diese mittelt und in derselben Excel-Datei in einem neuen Sheet abspeichert. Dies funktioniert auch soweit ohne Probleme, nur werden hierbei die ganzen Diagramme gelöscht. Hat jemand eine Ahnung woran das liegen könnte? Beziehungsweise wie man dies verhindern könnte? Vielen Dank im Voraus!
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

letztendlich ist Python kein Ersatz für Excel bzw. das direkte Arbeiten mit Excel. Meine _Vermutung_ ist, dass Python bzw. das Modul, was du nutzt, die Datei nicht editiert, sondern komplett neu schreibt - und dabei gehen die Diagramme verloren.

Gruß, noisefloor
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@LisaJ: wie sieht Dein Programm aus? Welches Paket benutzt Du, um Excel-Dateien zu editieren?
LisaJ
User
Beiträge: 2
Registriert: Mittwoch 31. Januar 2018, 13:42

Hey,
Ich habe das Programm jetzt etwas gekürzt und nur in das bestehende Excel File in einem neuen Sheet Werte reingeschrieben.
Dass Ergebnis war dennoch dasselbe, also wird die Datei nicht komplett neu geschrieben. Ich habe Openpyxl verwendet um in das Excelfile zu schreiben.

import numpy as np
from openpyxl import Workbook
from openpyxl import load_workbook
import sys
from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.utils import get_column_letter

def main():
# filename = sys.argv[-1]
filename = '11-1_1-2-3-4-5_4mm_test.xlsx'
wb = load_workbook(filename, read_only=False)

dest_filename = filename
ws = wb.create_sheet(title = "auswertung")

M = np.zeros(shape=(30,2))
i = 0
for i in range(30):
M[0] = 1
M[1] = 3
i += 1

for row in range(4,34):
ws.cell(row=row,column=1).value = M[row-4][0]
ws.cell(row=row,column=2).value = M[row-4][1]

wb.save(filename = dest_filename)

if __name__ == '__main__':
main()
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

CodeTags verwenden, wenn Du Quelltext hier postest, das ist sonst nicht (mehr) nutzbar, d. h. man kann deinen Quelltext nicht einfach testen.

Der Maintainer von openpyxl beantwortet schon mal häufiger Fragen auf StackOverflow, möglicherweise möchtest Du ihn kontaktieren (schau mal auf bitbucket, meine ich).
Antworten