phpMyExcel-PHPの数式を含むテーブル

こんにちは、Habrの読者の皆さん!



約1年前、夜、9を運転しながらクラスノダール地方の曲がりくねった道を村の両親に向かって移動しながら、Excelスプレッドシートに似た(ただし外部のみ)サイトの訪問者統計に関するレポートを作成する簡単なツールを作成することを考えました。



実際、私のアクティビティの性質上、mysqlテーブルからすべての種類の数値を出力し、あらゆる方法でそれらを監視する必要がありました:訪問者の数、更新が確認された一意のIPアドレスの数、何人が使用したバージョン、あらゆる種類の金額、カウント(*)など。 .p。 もちろん、主なクエリを特別な統計ページに配置し、phpMyAdmin-eであらゆる種類の興味深いがあまり価値のないサンプルを作成しました。このページにコミットするのは面倒でした。 はい、そして、数字のあらゆる種類の疑わしいニーズで統計ページを大量にロードしたくありませんでした。 これらのクエリはどこにも行きませんでしたが、それは私を困らせました。そして、いつも最後のクエリを記憶するある種のレポートツールを作りたかったのです。



アディゲアスファルトの長さ250 kmで3時間かかりました。私は物事を慎重に考える素晴らしい機会を得ました。 両親の家に着いて、私はラップトップの前に座って、内部的に1つのmysqlテーブルで構成されるExcelテーブルに似た簡単なものを書きました。







実装は、シート名、X、Y座標、および実際には式自体のフィールドを含むセルの1つのテーブルで構成されていました。







index.phpファイルでは、現在のシートのすべてのセルが選択され(シートはアドレスバーのGETパラメーターsheet = xxxで指定されています)、 srcフィールドの内容は画面に表示されるか、最初の文字が「等しい」場合はeval() PHP関数を使用して実行されました「。



したがって、式は、user_functions.phpファイルのすべてのユーザー定義関数を含む、PHPのすべての関数を使用できました。 たとえば、 sql()およびval()関数を作成しました。



/**      sql  */ function sql($sql){ return Database::selectAndFetch($sql); } /**      val("A0")    A0 */ function val($cell){ return MyExcel::getCellValue(get_current_sheet(), $cell); }
      
      







これはすべて私を非常に助けてくれます、そして私はここでそれについて書くことにしました、多分それは他の誰かのために役に立つかもしれません。 ソースコードは公開されており、希望する人はスクリプトの改善に参加し、私に個人的なメッセージを書いてコミットのパスワードを取得し、改善の本質を説明することができます。



このリンクから 1つのzipアーカイブでソースをダウンロードできます。 解凍後、 install.phpファイルを実行する必要があります-作業に必要なテーブルが作成されます。



MITライセンスの下で配布。 つまり 絶対に何でもできます。



All Articles