Liebe Pythonexperten,
ich befasse mich seit einiger Zeit mit Dataframes von Pandas, Datenbank SQLite und GUI (PyQT). Momentan befasse ich mich damit allerdings noch ziemlich isoliert voneinander und mir ist noch nicht ganz klar, wie ich die "Komponenten" zusammenbringe oder mit was ich anfange, um dann die anderen Teile einzubinden. Kann mir jemand einen Tipp geben? Vielleicht in Form von Literatur oder online-Turoials?
Mein Vorhaben ist folgendes:
Ich habe eine komplexe Excel-Tabelle mit automatisierten Abläufen über VBA-Makros. Konkret geht es um Notenberechnungen anhand von Punkten (Benutzereingagabe), Zuordnung von Notenbereichen zu Begrifflichkeiten, Verknüpfungen zu anderen Tabellenblättern, Textbausteinzuordnungen und -verkettungen (Benutzereingabe), Darstellung in einem Brief und PDF-Erzeugung.
Ich möchte diese Tabelle unabhängig von Excel machen.
Von welcher "Seite" fange ich mit der Programmierung an? Beim Dataframe? Oder kann ich mit PyQT alle Tabellen erzeugen und dann die Verknüpfungen zwischen Tabellen und Berechnungen nachträglich erzeugen? Das würde dann ja auch meine Einarbeitung und Herangehensweise ändern.
Liebe Grüße
Tina
Welches Setting/Startpunkt für Tabellenkalkulation
Puh. Da hast du dir was vorgenommen. Excel ist die Kombination aus Faustkeil, Leatherman und schweizer Taschenmesser fuer Datenverarbeitung. Das zu ersetzen ist erstaunlich schwierig, und oft von Misserfolg gekroent. Eine gute Freundin war mal dafuer zustaendig, das als IT-Projekt bei einem grossen Pharmakonzern zu treiben. Die sind daran weitestgehend gescheitert, und haben sich darauf beschraenkt, die Excel-Mappen automatisch zu sichern. Weil das den Leuten wegzunehmen zu viel Aerger bedeutet hat. Aber man waechst ja an seinen Herausforderungen.
Persoenlich wuerde ich das von den Daten her kommen. Also einen Rechenkern herstellen, der die gewuenschten Vorgaenge durchrechnet, und zB mittels reportlab PDFs erzeugt. Dabei moeglichst gut darauf achten, die Daten sauber zu trennen - also Punktetabellen von den Stammdaten wie Bezeichnungen etc zu trennen. Wenn das alles tut, was es soll, kann man daran arbeiten, die Daten bearbeitbar zu machen. Aber eine GUI dafuer wird *sehr* aufwaendig! Ggf. ist ein Arbeitsfluss basierend auf Excel da immer noch von Vorteil, wenn dann das Ergebnis der Bearbeitung einfach nur in die Anwendunguebernommen werden kann.
Persoenlich wuerde ich das von den Daten her kommen. Also einen Rechenkern herstellen, der die gewuenschten Vorgaenge durchrechnet, und zB mittels reportlab PDFs erzeugt. Dabei moeglichst gut darauf achten, die Daten sauber zu trennen - also Punktetabellen von den Stammdaten wie Bezeichnungen etc zu trennen. Wenn das alles tut, was es soll, kann man daran arbeiten, die Daten bearbeitbar zu machen. Aber eine GUI dafuer wird *sehr* aufwaendig! Ggf. ist ein Arbeitsfluss basierend auf Excel da immer noch von Vorteil, wenn dann das Ergebnis der Bearbeitung einfach nur in die Anwendunguebernommen werden kann.
nach meinen zwei Erfahrungen: ersetzen einer Tab.kalkulation durch eine andere ist immer schwierig. Endete hier immer in folgenden mehrfachen Dialog: "kann die neue Tab.kalkulation auch diese Funktion aus der alten?", Antwort: "Nein, müssten wir programmieren..." gefolgt vom Projektabbruch (einmal wollten wir nach Excel, beim anderen Projekt von Excel weg)
zurück zum Thema:
zurück zum Thema:
Damit wäre die GUI erstmal erledigt (weil es erstmal bei Excel bleibt) und man könnte zum eine vielleicht die VBA-Makros durch Python ersetzten, zum anderen die Daten von Excel rüber nach pandas kippen und sich dort mit den Dataframes usw. vergnügen.
_______________________________________________________________________________
https://www.python-kurs.eu/index.php
https://learnxinyminutes.com/docs/python/ https://learnxinyminutes.com/docs/de-de/python-de/
https://quickref.me/python https://docs.python-guide.org/
Ok, du meinst also, dass ich die ganzen Berechnungen mit "Beispieldaten wie Punkten" erstellen soll und dann diese Beispieldaten durch Inputmöglichkeiten ersetze? ... Aber wenn du das so ausführst, kommen mir gerade selbst wieder Zweifel an dem Vorhaben.__deets__ hat geschrieben: Dienstag 4. April 2023, 08:43 Puh. Da hast du dir was vorgenommen. Excel ist die Kombination aus Faustkeil, Leatherman und schweizer Taschenmesser fuer Datenverarbeitung. Das zu ersetzen ist erstaunlich schwierig, und oft von Misserfolg gekroent. Eine gute Freundin war mal dafuer zustaendig, das als IT-Projekt bei einem grossen Pharmakonzern zu treiben. Die sind daran weitestgehend gescheitert, und haben sich darauf beschraenkt, die Excel-Mappen automatisch zu sichern. Weil das den Leuten wegzunehmen zu viel Aerger bedeutet hat. Aber man waechst ja an seinen Herausforderungen.
Persoenlich wuerde ich das von den Daten her kommen. Also einen Rechenkern herstellen, der die gewuenschten Vorgaenge durchrechnet, und zB mittels reportlab PDFs erzeugt. Dabei moeglichst gut darauf achten, die Daten sauber zu trennen - also Punktetabellen von den Stammdaten wie Bezeichnungen etc zu trennen. Wenn das alles tut, was es soll, kann man daran arbeiten, die Daten bearbeitbar zu machen. Aber eine GUI dafuer wird *sehr* aufwaendig! Ggf. ist ein Arbeitsfluss basierend auf Excel da immer noch von Vorteil, wenn dann das Ergebnis der Bearbeitung einfach nur in die Anwendunguebernommen werden kann.
Hmmm...meine Motivation sinkt wieder.grubenfox hat geschrieben: Dienstag 4. April 2023, 09:39 nach meinen zwei Erfahrungen: ersetzen einer Tab.kalkulation durch eine andere ist immer schwierig. Endete hier immer in folgenden mehrfachen Dialog: "kann die neue Tab.kalkulation auch diese Funktion aus der alten?", Antwort: "Nein, müssten wir programmieren..." gefolgt vom Projektabbruch (einmal wollten wir nach Excel, beim anderen Projekt von Excel weg)
zurück zum Thema:Damit wäre die GUI erstmal erledigt (weil es erstmal bei Excel bleibt) und man könnte zum eine vielleicht die VBA-Makros durch Python ersetzten, zum anderen die Daten von Excel rüber nach pandas kippen und sich dort mit den Dataframes usw. vergnügen.

Wenn ich - mit ein paar Jahrzehnten von diesem "Programmieren" auf dem Buckel - von meinem Chef diese Aufgabe bekaeme, wuerde ich mich mit Haenden und Fuessen wehren
Es gibt aber viele Unbekannte hier. Wichtig ist zB, ob du das fuer *dich* machst - dann ist ja im Zweifel auch ein weniger robustes System, wo die Programmiererin auch mal eingreifen kann - ok. Aber wenn das den Anspruch hat, von wem anders genutzt zu werden, dann wirst du dich mit der gesamten Barrage von Nutzeranforderungen rumschlagen muessen. Das ist dann ein ausgewachsenes IT-Projekt.

Steck Dir Ziele, die einfach erreichbar sind und für sich genommen schon einen Vorteil bringen.
Ich sehe da die Erzeugung der PDF-Erzeugung als ersten Schritt, also die Excel-Tabelle laden und daraus ein schönes PDF machen.
Die nächsten Schritte sind, immer mehr der Berechungen auch in Python zu machen.
Beim letzten Schritt, das ganze in eine GUI umzuwandeln, hängt es sehr davon ab, wie kompliziert die Eingaben sind. Da das aber der letzte Schritt ist, mußt Du Dir darüber noch nicht so sehr den Kopf zerbrechen.
Ich sehe da die Erzeugung der PDF-Erzeugung als ersten Schritt, also die Excel-Tabelle laden und daraus ein schönes PDF machen.
Die nächsten Schritte sind, immer mehr der Berechungen auch in Python zu machen.
Beim letzten Schritt, das ganze in eine GUI umzuwandeln, hängt es sehr davon ab, wie kompliziert die Eingaben sind. Da das aber der letzte Schritt ist, mußt Du Dir darüber noch nicht so sehr den Kopf zerbrechen.
Dann lasse ich wohl doch besser die Finger davon. Vielleicht frage ich mal nen Student, ob er ein Projekt für ne Doktorarbeit braucht__deets__ hat geschrieben: Dienstag 4. April 2023, 09:50 Wenn ich - mit ein paar Jahrzehnten von diesem "Programmieren" auf dem Buckel - von meinem Chef diese Aufgabe bekaeme, wuerde ich mich mit Haenden und Fuessen wehrenEs gibt aber viele Unbekannte hier. Wichtig ist zB, ob du das fuer *dich* machst - dann ist ja im Zweifel auch ein weniger robustes System, wo die Programmiererin auch mal eingreifen kann - ok. Aber wenn das den Anspruch hat, von wem anders genutzt zu werden, dann wirst du dich mit der gesamten Barrage von Nutzeranforderungen rumschlagen muessen. Das ist dann ein ausgewachsenes IT-Projekt.

Eine Excel Tabelle durch Python zu automatisieren bringt schon einen Doktortitel? Wo muss ich unterschreiben?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
- __blackjack__
- User
- Beiträge: 14065
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Kebap: Psychologie im Arbeitsumfeld wenn man versucht eine jahrelang gewachsene Struktur durch etwas neues zu ersetzen, kann schon interessant und vielleicht auch anspruchsvoll genug für eine Doktorarbeit sein. 
Wobei der Doktortitel ja nicht für den Umsetzungsteil vergeben wird, sondern für die Doktorarbeit als ganzes. Wenn man also bei so etwas einen Punkt findet an dem man was erforschen kann und das entsprechend zu Papier bringt, warum dann nicht. Es gibt auch eine ziemliche Bandbreite zwischen Doktorarbeiten, die rein an der Uni entstehen, mit Leuten die mit dem Titel in der Forschung und Lehre weitermachen wollen, und solchen die in einer Firma erstellt werden, die vielleicht auch Drittmittel für die Uni stellt, und wo der Titel nur für die Karriere in der Privatwirtschaft da sein soll.
Wobei der Doktortitel ja nicht für den Umsetzungsteil vergeben wird, sondern für die Doktorarbeit als ganzes. Wenn man also bei so etwas einen Punkt findet an dem man was erforschen kann und das entsprechend zu Papier bringt, warum dann nicht. Es gibt auch eine ziemliche Bandbreite zwischen Doktorarbeiten, die rein an der Uni entstehen, mit Leuten die mit dem Titel in der Forschung und Lehre weitermachen wollen, und solchen die in einer Firma erstellt werden, die vielleicht auch Drittmittel für die Uni stellt, und wo der Titel nur für die Karriere in der Privatwirtschaft da sein soll.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Es soll auch nicht eine Exceltabelle mit Python automatisiert werden. Das hab ich ja schon mit VBA. Ich will Excel komplett ersetzen. Muss ja auch keine Doktorarbeit sein, sondern vielleicht ein Projekt auf nem anderen Level. Aber so wie das hier geschildert wurde, mit dem Aufwand und der Verknüpfung mit Gui, dachte ich, das könnte passen.Kebap hat geschrieben: Dienstag 4. April 2023, 11:13 Eine Excel Tabelle durch Python zu automatisieren bringt schon einen Doktortitel? Wo muss ich unterschreiben?
Das wäre dann ja nicht wirklich Excel mit all seinen Fähigkeiten, sondern "nur" die grafische Darstellung mehr oder weniger komplizierter zusammenhängender Tabellen, wo man an verschiedenen Punkten etwas durch Benutzereingaben ändern kann.so.egal hat geschrieben: Dienstag 4. April 2023, 08:33 Von welcher "Seite" fange ich mit der Programmierung an? Beim Dataframe? Oder kann ich mit PyQT alle Tabellen erzeugen und dann die Verknüpfungen zwischen Tabellen und Berechnungen nachträglich erzeugen? Das würde dann ja auch meine Einarbeitung und Herangehensweise ändern.
Oder meinst du im Grunde bloß eine Art Excel-Layout, wo man in eine beliebige Spalte etwas eingeben kann und einfache Textformatierungen (Schriftart, fett/kursiv, ...) durchführen kann? Formeln zumindest für die Grundrechenarten und die Summen-Funktion wären ja auch noch denkbar, später vielleicht automatische Zellformatierungen (Text, Datum, Dezimalzahl, ...), erstmal aber manuell. Da wirst du ja eh nicht herum kommen, wenn du typisierte Daten aus DataFrames abbilden und Berechnungen zulassen willst.
Das alle wäre grundsätzlich schon mit Qt (PySide) lösbar, nur halt verdammt viel Arbeit. Die Eingabemöglichkeiten würde ich anfangs auf ein Minimum beschränken. Ansonsten wirst du "nie" fertig mit. Erstmal halt die interne Logik für die Tabellen basteln, schauen ob bzw. wie du das alles als DataFrames abbilden kannst. Danach halt die Tabelle vom GUI-Toolkit darstellen lassen.
Du könntest dir natürlich auch den Quellcode von LibreOffice anschauen (https://www.libreoffice.org/about-us/source-code), um dir da ein paar Dinge abzugucken. Wir kennen auch deine bisherigen Programmierkenntnisse nicht und in welchen Sprachen du Code schreiben und lesen kannst...
-
- User
- Beiträge: 73
- Registriert: Samstag 28. Januar 2023, 20:19
- Wohnort: Nähe Wien
- Kontaktdaten:
So ganz klar ist mir nicht, was die Anwendung tun soll.Mein Vorhaben ist folgendes:
Ich habe eine komplexe Excel-Tabelle mit automatisierten Abläufen über VBA-Makros. Konkret geht es um Notenberechnungen anhand von Punkten (Benutzereingagabe), Zuordnung von Notenbereichen zu Begrifflichkeiten, Verknüpfungen zu anderen Tabellenblättern, Textbausteinzuordnungen und -verkettungen (Benutzereingabe), Darstellung in einem Brief und PDF-Erzeugung.
Ich möchte diese Tabelle unabhängig von Excel machen.
Kann man die Funktionalität vielleicht so zusammenfassen?
* Es handelt sich um eine Verwaltungsanwendung.
* Lehrerinnen und Lehrer können Zahlen und Texte in Tabellen eintragen.
* Auf Basis der erfassten Daten werden Schulnoten generiert.
* Bei Bedarf können Briefe im PDF-Format erzeugt werden.
LG Gerald
Ich bin was Python angeht noch ganz am Anfang. Will mich zielorientiert einarbeiten. Es gibt so viele Möglichkeiten, dass man schnell den Überblick verliert. Ihr habt mir schon sehr geholfen mit den vielfältigen Antworten, das alles für mich einzugrenzen. Jetzt weiß ich, auf was ich mich konzentieren muss. Neue Inputs und Ideen hab ich jetzt auch. Ich werde mir das alles nochmal genauer vornehmen, um dann eine letzte Entscheidung zu treffen, ob ich das Ganze angehe, doch eher bei der Excel-Tabelle belasse oder vielleicht ein alternatives Tabellenkalkulationsprogramm mit Makros automatisiere. Ihr habt mir schon deutlich gemacht, dass das alles nicht so einfach ist.snafu hat geschrieben: Mittwoch 5. April 2023, 05:44Das wäre dann ja nicht wirklich Excel mit all seinen Fähigkeiten, sondern "nur" die grafische Darstellung mehr oder weniger komplizierter zusammenhängender Tabellen, wo man an verschiedenen Punkten etwas durch Benutzereingaben ändern kann.so.egal hat geschrieben: Dienstag 4. April 2023, 08:33 Von welcher "Seite" fange ich mit der Programmierung an? Beim Dataframe? Oder kann ich mit PyQT alle Tabellen erzeugen und dann die Verknüpfungen zwischen Tabellen und Berechnungen nachträglich erzeugen? Das würde dann ja auch meine Einarbeitung und Herangehensweise ändern.
Oder meinst du im Grunde bloß eine Art Excel-Layout, wo man in eine beliebige Spalte etwas eingeben kann und einfache Textformatierungen (Schriftart, fett/kursiv, ...) durchführen kann? Formeln zumindest für die Grundrechenarten und die Summen-Funktion wären ja auch noch denkbar, später vielleicht automatische Zellformatierungen (Text, Datum, Dezimalzahl, ...), erstmal aber manuell. Da wirst du ja eh nicht herum kommen, wenn du typisierte Daten aus DataFrames abbilden und Berechnungen zulassen willst.
Das alle wäre grundsätzlich schon mit Qt (PySide) lösbar, nur halt verdammt viel Arbeit. Die Eingabemöglichkeiten würde ich anfangs auf ein Minimum beschränken. Ansonsten wirst du "nie" fertig mit. Erstmal halt die interne Logik für die Tabellen basteln, schauen ob bzw. wie du das alles als DataFrames abbilden kannst. Danach halt die Tabelle vom GUI-Toolkit darstellen lassen.
Du könntest dir natürlich auch den Quellcode von LibreOffice anschauen (https://www.libreoffice.org/about-us/source-code), um dir da ein paar Dinge abzugucken. Wir kennen auch deine bisherigen Programmierkenntnisse nicht und in welchen Sprachen du Code schreiben und lesen kannst...
Vielen Dank für eure Hilfe!