2

これは本当にアプローチの問題だと思います。

サードパーティから提供されたコア Excel スプレッドシートがあり、生データの複雑な分析を提供します。生データは、2 番目のスプレッドシートで顧客から直接届きます。

生データのExcelファイルをアップロードして分析を実行し、レポートを生成できる、自動化されたWebサーバーベースのシステムを作成しようとしています。

レポートの生成は問題ありませんが、アプリケーション内でコア Excel スプレッドシート自体を実際に使用して (たとえば PHPExcel を使用して) 数学を実行することに何かマイルがあるでしょうか? それとも、常にコードで分析を複製するための最良のアプローチですか?

私たちの考えでは、分析 (サードパーティから提供されるもの) はかなり複雑であるため、PHP で複製するにはかなり多くのアンピックが必要であり、第二に、分析の一部がサードパーティによって調整されていることが多く、新しいバージョンのExcel は定期的に提供されます。

PHPExcel を使用してこのようなことを行い、メモリ内にシートを作成し、生データを 2 番目のワークシートとしてマージし、計算結果を読み取ることを想像できますが、これは現実的ですか?私はどのように想像していますか?

どんな考えでも大歓迎です。

4

2 に答える 2

5

Excel の式の複雑さによっては、PHPExcel の計算エンジンを使用することは完全に実行可能ですが、いくつかの潜在的な「落とし穴」に注意する必要があります。

  • すべての Excel 関数が完全にサポートされているわけではありません (PHPExcel のドキュメントにリストが提供されていますが、356 関数のうち 316 関数が現在サポートされていると思います)。
  • 分析ツールパックの Excel 関数は、BIFF (.xls) ワークブックではサポートされていません。ただし、OfficeOpenXML (xlsx) ワークブックで動作します
  • ユーザー定義関数はサポートされていません
  • マクロおよびその他の VB コードはサポートされていません
  • 配列数式はまだサポートされていません (これは、年末までに開始される予定の計算エンジンの書き直しの重要な部分です)
  • セル参照の R1C1 形式はサポートされていません

比較的遅いです (書き換えが必要な理由の一部です)。特定の要件に合わせてコーディングできるため、必要な式をより効率的に実行する PHP コードを確実に作成できます。PHPExcel が遅すぎるかどうか 「遅すぎる」が実際に何を意味するのかを判断できるのは、あなただけです。

多くの場合、大量のメモリまたは時間のかかるタスクのリクエストを送信して、Web サーバーの外部で実行する方がよいことに注意してください。

一方、クライアントがスプレッドシートを変更したことがある場合 (そして、これがかなり頻繁であることを示しています)、PHPExcel の組み込みの計算エンジンを使用しても問題なく動作することを意味しますが、カスタム作成されたコードは変更が必要になります。すでに指摘したように、複雑な数式を PHP コードに変換するには、多くの作業が必要になる場合があります。また、スプレッドシート内の数式に加えられた変更をアンピックすることは特に困難です。

于 2012-09-28T09:25:41.760 に答える
0

実際には問題の解決策ではありませんが、PHP側で計算を作成し、クライアント/サードパーティに指定された形式で(理想的にはCSVファイルとして)データを送信してから解析することをお勧めします。データを取得し、必要な計算を実行します。

于 2012-09-28T09:28:46.013 に答える