6 Stimmen

Was sind gute Methoden, um in einer Programmiersprache kalkulationsähnliche Berechnungen durchzuführen?

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?

2voto

subb Punkte 1558

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.

1voto

Matthew Vines Punkte 26593

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.

1voto

Cheeso Punkte 184210

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.

1voto

Esteban Küber Punkte 35006

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.

Overview of Resolver One's overall algorithm to deal with user generated ecuations

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.

0voto

Raffael Luthiger Punkte 2141

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:

  1. Erstellen Sie ein leeres Excel-Dateiobjekt
  2. Hinzufügen von Zellen (entweder mit Daten oder Formeln) zur "Excel-Datei".
  3. 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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X