6

プログラミング言語でスプレッドシートのような計算を行う最良の方法は何ですか? 例: マルチユーザー アプリケーションは、ユーザーの送信に基づいてスプレッドシートのように数値の列とセルを処理する Web 経由で利用できる必要があります。このタイプの作業を処理するのに最適なデータ構造/データベースモデル/パターンは何ですか。これにより、さまざまな列の処理がphp、java、または.Netで効率的かつ簡単に行われます. 言語内でデータ構造を使用する方が良いですか、それともデータベースを使用する方が良いですか? データベースを使用することが方法である場合、これを行うにはどうすればよいでしょうか?

4

8 に答える 8

2

実際の計算を行うには、グラフ理論を見てください。基本的に、各セルをグラフのノードとして表し、各依存関係を有向エッジとして表します。次に、トポロジカル ソートを実行して、各セルの値を正しい順序で計算します。

于 2009-08-07T21:57:32.670 に答える
1

Resolver Oneは、IronPythonで作成されたスプレッドシートアプリです。

ユーザー生成の計算に使用する計算[pythonology.org]の全体的なメカニズムの説明があります。

ユーザー生成の教育を処理するためのResolverOneの全体的なアルゴリズムの概要

ResolverOneの全体的なアルゴリズムを示す関連画像。

ユーザーは、セルと特別な「シート外」の場所の両方で解釈されるPythonコードを記述できることに注意してください。

ここSOで別の質問を見てください。そこから私は答えを再利用しました。

于 2009-08-06T17:45:58.020 に答える
1

Aspose.Cells (以前の Aspose.Excel.Web) は、探している機能を取得するための優れた方法です。

「それはどのように行われますか?」ともっと尋ねていない限り。「私はそれをする必要がある」よりも。次に、与えられた他の回答を見ていきます。

于 2009-08-05T19:21:22.997 に答える
1

「私はそれをする必要があります」という行に沿って、
Microsoftには、必要なことだけを行うExcel Servicesがあります。サーバー上でのスプレッドシート操作。Web サービス インターフェイスを介して利用できるため、Java、PHP、.NET などから接続して計算を実行できます。

Excel Services は、Sharepoint 2007 の一部です。

于 2009-08-05T19:30:00.200 に答える
0

やり方は教えません。しかし、 PHPExcelのコードを見ることをお勧めします。PHPExcel は、PHP 内で Excel ファイルを作成できるライブラリです。

PHPExcel のワークフローは次のように単純化されます。

  1. 空の Excel ファイル オブジェクトを作成する
  2. セル (データまたは数式を含む) を「Excel ファイル」に追加します。
  3. ファイル自体を生成している create 関数を呼び出します

あなたの場合、3.を「Create web interface」のようなものに置き換える必要があります。

したがって、このオープン ソース プロジェクトのコードを見て、一般的な構造がどのようなものかを確認することをお勧めします。これは、問題の解決に役立つはずです。

于 2009-08-07T21:32:27.713 に答える
0

SpreadsheetGear for .NETを使用すると、Excel ワークブックをロードし、値を挿入し、計算して結果を取得できます。

簡単な ASP.NET 計算のサンプルはこちらで、他の ASP.NET サンプルはこちらで、無料試用版はこちらでダウンロードできます

免責事項: 私は SpreadsheetGear LLC を所有しています

于 2009-08-17T16:10:03.233 に答える
0

BODMASを使用して文字列を解析した結果を格納するために、二分木を使用したことがあります。各ノードは、他の 2 つのノード間の操作であり、数値、変数、または別の操作である可能性があります。

したがって、y = x * x + 2

なりました:

          +
      *       2
   x     x

悲しいことに、これはパスカルの学校であり、5 1/4 インチのディスクに保存されているので、必要ありません :)

于 2009-08-08T07:17:56.540 に答える
-1

Google スプレッドシートは既にこの種のことを行っていることを指摘しなければなりません。

于 2009-08-07T22:59:38.303 に答える