Wie kann man in einer Programmiersprache am besten Berechnungen durchführen, die einer Tabellenkalkulation ähneln? Beispiel: Eine Multi-User-Anwendung soll über das Internet verfügbar sein, die auf der Grundlage von Benutzereingaben Spalten und Zellen mit Zahlen wie eine Tabellenkalkulation verarbeitet. Was sind die besten Datenstrukturen/Datenbankmodelle/Muster, um diese Art von Arbeit zu bewältigen, so dass die verschiedenen Spalten effizient und einfach in PHP, Java oder sogar .Net bearbeitet werden können. Ist es besser, Datenstrukturen innerhalb der Sprache zu verwenden, oder ist es besser, eine Datenbank zu benutzen? Wenn die Verwendung einer Datenbank der richtige Weg ist, wie kann man dies tun?
Antworten
Zu viele Anzeigen?Um die eigentliche Berechnung durchzuführen, sollten Sie sich mit der Graphentheorie befassen. Grundsätzlich möchten Sie jede Zelle als einen Knoten in einem Graphen und jede Abhängigkeit als eine gerichtete Kante darstellen. Führen Sie dann eine topologische Sortierung um die Werte der einzelnen Zellen in der richtigen Reihenfolge zu berechnen.
Aspose.Cells (ehemals Aspose.Excel.Web) ist eine gute Möglichkeit, die von Ihnen gewünschte Funktionalität zu erhalten.
Es sei denn, Sie fragen eher nach "Wie wird es gemacht?" als nach "Ich muss es machen". Dann würde ich mir die anderen gegebenen Antworten ansehen.
Nach dem Motto "Ich muss es tun".
Microsoft hat Excel-Dienste die genau das tut, was Sie wollen. Tabellenkalkulationsoperationen auf dem Server. Es ist über eine Webservice-Schnittstelle verfügbar, so dass Sie eine Verbindung herstellen und Berechnungen von Java, PHP, .NET, was auch immer, durchführen können.
Excel Services ist Teil von Sharepoint 2007.
Auflöser Eins ist eine in IronPython erstellte Tabellenkalkulationsanwendung.
Es gibt eine Erläuterung der allgemeinen Mechanik der Berechnung [pythonology.org], die es für benutzergenerierte Berechnungen verwendet.
Das entsprechende Bild zeigt den Gesamtalgorithmus von Resolver One.
Es sollte beachtet werden, dass Benutzer Python-Code schreiben können, der sowohl in den Zellen als auch an einem speziellen Ort "außerhalb des Blattes" interpretiert wird.
Blick auf eine weitere Frage hier in SO wo ich meine Antwort wieder verwendet habe.
Ich kann Ihnen nicht sagen, wie Sie es machen sollen. Aber ich würde Ihnen empfehlen, sich den Code von PHPExcel . PHPExcel ist eine Bibliothek, mit der Sie Excel-Dateien in PHP erstellen können.
Der Arbeitsablauf von PHPExcel lässt sich wie folgt vereinfachen:
- Erstellen Sie ein leeres Excel-Dateiobjekt
- Hinzufügen von Zellen (entweder mit Daten oder Formeln) zur "Excel-Datei".
- Aufruf der Funktion create, die die Datei selbst erzeugt
In Ihrem Fall müssten Sie 3. durch etwas wie "Webinterface erstellen" ersetzen.
Daher würde ich Ihnen empfehlen, sich den Code dieses Open-Source-Projekts anzusehen und zu prüfen, wie die allgemeine Struktur ist. Dies sollte Ihnen helfen, Ihr Problem zu lösen.
- See previous answers
- Weitere Antworten anzeigen