Programmiersprache für "Übersetzung" von Exceltabellen

so.egal

Cadet 3rd Year
Registriert
Sep. 2016
Beiträge
37
Hallo,

ich habe eine Exceltabelle mit mehreren Verknüpfungen, zu verschiedenen Tabellenblättern und verschiedene Funktionen (Wenn-Funktionen, Verketten-Funktionen, Berechnungsformeln, Formatierungsbedingungen,...) . Diese Tabelle würde ich gerne in ein Programm umschreiben. Welche Programmiersprache sollte man sich dafür aneignen? Ich bin Programmieranfänger, bin aber mit den Grundlagen vertraut. Die Programmiersprache sollte also nicht unnötig kompliziert sein für mein Vorhaben.

Die Anwendung muss auf Windows laufen. Webbasiert könnte ich mir allerdings auch gut vorstellen, wenn dadurch keine größeren Nachteile entstünden.

Könnt ihr mir hier was empfehlen?

LG Tina
 
Das wären dann zwei Baustellen. Zunächst müsstest du dich in relationale Datenbanken (SQL) einarbeiten, um deine Daten einpflegen zu können. Mit welcher Programmiersprache du dann hinterher darauf zugreifen, hängt dann vom Einsatzzweck ab (bei Web-basierten Sprachen bin ich leider nicht so drin).

Gruß Jens
 
Für eine Windows Anwendung empfiehlt sich, auch ob der verwendeten Programmiersprache VBA, Microsoft Access.
Würde sich bei Excel nicht eine Anpassung mittels Ribbons anbieten?
Beide Wege erfordern erheblichen Lernaufwand!
 
Hallo,
du kannst mit Excel-VBA direkt in Excel programmieren, wenn du funktionen benötitigst, die über Zellen-Formeln hinausgehen. (drücke ALT+F11 in Excel)
Wenn du aber wirklich programmieren willst, kann ich vor allem Python empfehlen. Das ist eine sehr Programmiererfreundliche Sprache. Wenn du dir PyCharm mit Anaconda installierst (2 Programme die für Python sehr ans Herz zu legen sind), wird Pandas gleich mitgeliefert. Das ist ein Paket mit Funktionen, die in Python geladen und genutzt werden können und sehr einfach zu verwenden sind. Damit ist auch möglich, direkt Excel zu laden. Ich habe das noch nicht gemacht, aber du wirst dann auf die Zellinhalte zugreifen können (zB reihenweise mit einer Schleife oder man kann auch Spalten-Operationen durchführen). Mit ein wenig Knowhow kannst du dann neue Funktionen basierend auf den Werten der Tabelle schreiben und in neue Spalten schreiben, oder auch die bestehenden Spalten ändern. Das erfordert am Anfang aber natürlich einiges an Einarbeitung, dafür hast du dann auch eine recht mächtige Programmiersprache begonnen zu lernen.
Für Learning-by-Doing ist Stackoverflow ganz gut: https://stackoverflow.com/questions/3239207/how-can-i-open-an-excel-file-in-python
 
  • Gefällt mir
Reaktionen: so.egal und BoeserBrot
So wie @uburoi sagt, sind das zwei Anwendungsfälle:

Anwendungsfall 1 - Daten aus Excel-Tabelle herausziehen.

Hier empfehle ich dir C#/.NET, da es super NuGet-Pakete gibt, welche dir die grausige Office-API sehr gut abstrahieren und dir deshalb ein Haufen Arbeit ersparen. (z.B. das hier)

Wenn du dir die Daten in dein Programm gezogen hast, kannst du diese in eine Datenbank (z.B. SQlite) persistieren.


Anwendungsfall 2 - Präsentation der Daten

Entweder du bleibst im .NET Umfeld und nutzt WPF/WinForms/ASP.NET oder irgendein anderes Framework. Du könntest z.B. auch Angular nutzen, hier ist die Lernkurve nur sehr flach und für dein Vorhaben wahrscheinlich overkill.

Viel Erfolg :schluck:
 
Ohne Datenbank, rein auf (Excel) Tabellen basierend würde ich auch Python mit pandas verwenden.
 
  • Gefällt mir
Reaktionen: BoeserBrot
Danke euch. Das sieht nach sehr viel Einarbeitung aus.
Wie ist das mit Python? Ich habe kurz überflogen, dass man Excel-Dateien einlesen kann. Sind das nur CSV-Dateien, oder wird die gesamte Mappe eingelesen, sodass man sie weiterverarbeiten kann? Also, dass ich dann daraus eine EXE-Datei exportieren kann?

Liebe Grüße
 
VBA ist einfach und verzeiht viel, die Integration in ein Ribbon ist recht simpel. Dafür erreicht es schnell seine Grenzen und objektorientierte Konzepte klappen nur bedingt. Kann reichen, muss nicht.
Relativ nah dran wäre VSTO als AddIn, was also C# mit .net Framework bedeuten würde. Ribbon Integration geht auch, funktioniert aber partiell nicht identisch zu VBA. Allerdings wäre hier der Vorteil das man volles OO hat und mit dem Entity Framework ohne große SQL Kenntnisse Richtung Datenbanken kommt. Auch umgeht man damit die VBA-Virenproblematik. Es bleibt zwar spannend ob und wie VSTO weiterleben wird, aber momentan gehts damit.

Persönlich würde ich zu VSTO tendieren. Ja, das ständige Casting ist aufwendig und wenn man WPF benutzen möchte muss man das trotzdem in Windows Forms verpackt an Office übergeben. Aber in Summe fand ich den Schritt von VBA zu C# VSTO sehr sinnvoll.
 
so.egal schrieb:
Wie ist das mit Python? Ich habe kurz überflogen, dass man Excel-Dateien einlesen kann. Sind das nur CSV-Dateien, oder wird die gesamte Mappe eingelesen, sodass man sie weiterverarbeiten kann? Also, dass ich dann daraus eine EXE-Datei exportieren kann?
Ich würde Dir empfehlen, Deine Daten ans sich im Excel zu belassen und alle Berechnungen und Verknüpfungen mit Python auf dieser Excel-Tabelle zu machen und die Resultate ggf. gleich in eine neue Excel-Spalte oder Arbeitsblatt zu schreiben. Alles in Python, siehe pywin32. Da kannst Du in Python im Grunde mit den selben Funktionen im Excel arbeiten als würdest Du im Excel VBA benutzen.

https://jpereiran.github.io/articles/2019/06/14/Excel-automation-with-pywin32.html
https://pythonexcels.com/python/2009/10/05/python-excel-mini-cookbook

D.h., Du hast ein Python-Script und eine Excel-Tabelle mit Daten.
 
blöderidiot schrieb:
Ich würde Dir empfehlen, Deine Daten ans sich im Excel zu belassen und alle Berechnungen und Verknüpfungen mit Python auf dieser Excel-Tabelle zu machen und die Resultate ggf. gleich in eine neue Excel-Spalte oder Arbeitsblatt zu schreiben. Alles in Python, siehe pywin32. Da kannst Du in Python im Grunde mit den selben Funktionen im Excel arbeiten als würdest Du im Excel VBA benutzen.

https://jpereiran.github.io/articles/2019/06/14/Excel-automation-with-pywin32.html
https://pythonexcels.com/python/2009/10/05/python-excel-mini-cookbook

D.h., Du hast ein Python-Script und eine Excel-Tabelle mit Daten.
Das klingt einigermaßen umsetzbar. Wie würde dann das Ergebnis aussehen. Würde man die Anwendung autonom oder in Excel starten? Und wie sieht das User Interface aus?

LG
 
so.egal schrieb:
Würde man die Anwendung autonom oder in Excel starten? Und wie sieht das User Interface aus?
Excel macht gar nichts mehr außer als bequeme und vertraute Datenhalde zu dienen. Du startest das Python-Skript und dieses liest die Excel-Datei ein, macht die von Dir vorgesehenen Berechnungen und schreibt die Ergebnisse wieder in die Excel-Datei rein. User Interface? Was soll da eingegeben werden?
Sowas hier wäre möglich: https://realpython.com/pysimplegui-python/
 
blöderidiot schrieb:
Excel macht gar nichts mehr außer als bequeme und vertraute Datenhalde zu dienen. Du startest das Python-Skript und dieses liest die Excel-Datei ein, macht die von Dir vorgesehenen Berechnungen und schreibt die Ergebnisse wieder in die Excel-Datei rein. User Interface? Was soll da eingegeben werden?
Sowas hier wäre möglich: https://realpython.com/pysimplegui-python/
Vielleicht beschreibe ich mein Vorhaben mal näher:
Die Excelmappe dient zur Schülerbeurteilung.
Die Excelmappe beinhaltet folgende Blätter:

1. Schülerdaten, die eingegeben werden müssen (Namen und Geschlecht)
2. Eine Tabelle in die Punkte verschiedener Aufgaben eines Kompetenznachweises (ähnlich einer Klassenarbeit) eingegeben werden. Dann werden entsprechende Kreuze automatisch gesetzt, ob man die Aufgebe voll, teilweise, ..., nicht erfüllt hat. Hier ist auch eine Tabelle mit Textbausteinen hinterlegt. Der Textbaustein bewertet die gesamte Arbeit.
3. Ein Blatt mit dem Elternbrief, der die angekreuzte Tabelle aus 2. beinhaltet.
(2. + 3. sind mehrfach vorhanden)
4. Ein Blatt in dem die Textbausteinen aus mehreren Kompetenznachweisen verkettet werden.

Gibt es hier eine gute Lösung?
 
Elbrathil schrieb:
Hallo,
du kannst mit Excel-VBA direkt in Excel programmieren, wenn du funktionen benötitigst, die über Zellen-Formeln hinausgehen. (drücke ALT+F11 in Excel)
Wenn du aber wirklich programmieren willst, kann ich vor allem Python empfehlen. Das ist eine sehr Programmiererfreundliche Sprache. Wenn du dir PyCharm mit Anaconda installierst (2 Programme die für Python sehr ans Herz zu legen sind), wird Pandas gleich mitgeliefert. Das ist ein Paket mit Funktionen, die in Python geladen und genutzt werden können und sehr einfach zu verwenden sind. Damit ist auch möglich, direkt Excel zu laden. Ich habe das noch nicht gemacht, aber du wirst dann auf die Zellinhalte zugreifen können (zB reihenweise mit einer Schleife oder man kann auch Spalten-Operationen durchführen). Mit ein wenig Knowhow kannst du dann neue Funktionen basierend auf den Werten der Tabelle schreiben und in neue Spalten schreiben, oder auch die bestehenden Spalten ändern. Das erfordert am Anfang aber natürlich einiges an Einarbeitung, dafür hast du dann auch eine recht mächtige Programmiersprache begonnen zu lernen.
Für Learning-by-Doing ist Stackoverflow ganz gut: https://stackoverflow.com/questions/3239207/how-can-i-open-an-excel-file-in-python
Ich habe mich nun für Python entschieden und arbeite mich gerade ein. Danke für den Tipp mit den 2 Programmen, die werde ich mir auch gleich noch anschauen.

LG Tina
 
Zurück
Oben