2008年03月14日

Excel_Reviser 最初の一歩

Excel_Reviserの環境構築、というほど大したものでもないが、実行できる状態まで来たので、まずはとりあえず動かしてみる。
 
まず一番最初に、ExcelReviserを使って、サーバ上にあるExcelファイルをただ表示するだけのスクリプトを記述してみる。
 
ExcelReviserの特徴は、テンプレートとなるExcelファイルを読み込んで、それに編集をかけて出力することにある。そこで、簡単だけど複数の要素を含むExcelファイルを作ってみる。
 
orgxls.jpg

 
テスト要素として、罫線、セルの着色、オートシェイプの貼り付け、セル参照、セルの結合、フォントの指定等を詰め込んだファイルを用意し、サーバに置いておく。
 
 最初の一歩として、サーバに配置したExcelファイルに何の編集も行わず、ダウンロードさせてみる。
 
ソースは非常に単純で、以下のようになる。サーバに配置したExcelファイル名を"D1.xls"として…
<?php
include_once("reviser.php");
$xls = new Excel_Reviser;
$readfile = "./D1.xls";
$xls->reviseFile($readfile,"");
?>
とする。このスクリプトをブラウザで開くと、普通にダイアログが開き、ブラウザ上にExcelファイルが展開される。配置しておいたシェイプやセルの設定等もまったくそのままであり、問題なく稼動できていることがわかる。
最大でhttpのCPU使用率が7%、メモリ使用率が5%程度になる。とはいえCPUは今時懐かしいK6-500を低電圧駆動させているものだし、メモリも128MBytesしか積んでいない状態でこれなので、最近のサーバ機であれば蚊ほどのものか。
 
第一歩のおまけとして、セルの内容を書き換えることぐらいしておく。
順序としては、
  1. Excel_Reviserのインスタンスを生成する。
  2. 変更する内容を、所定のメソッドを用いて記述していく。
  3. 全ての変更が終了したら、ここで初めてテンプレートとなるXlsファイルを指定し、ダウンロードあるいはファイルへの出力を行う。
となる。最初にファイルを読み込んで編集するのではなく、編集内容を全部記述してからファイルを読み込むところが特徴的だ。
 
サンプルとしては以下のようなソースになる。
<?php
include_once("./reviser.php");
$xls = new Excel_Reviser;
$xls->addString(0,2,1,"いろはにほへと");
$xls->addString(0,2,2,"ちりぬるおわか");
$template = "./D1.xls";
$xls->reviseFile($template,"");
?>
少々内容について解説する。
まず、Excel_Reviserのコアになるreviser.phpファイルをインクルードする。
コアファイルで定義されている、Excel_Reviserクラスのインスタンスを作成する。
インスタンスに対して、特定のセルの内容を追加するメソッド、addStringを実行する。
引数は順に、シート、行、列、挿入する文字列で、シート・行・列はゼロオリジンなので、たとえば第一シートのA1セルを参照するならば、addString(0,0,0  となり、B21セルを参照するならば、addString(0,20,1  となるようだ。挿入するのが数値ならば、addNumberメソッドを使う。
文字列に日本語を使うことには問題が無い。PHPのInternalEncoding、ソースの書かれるエンコードなど、全てEUCで統一するのがよろしいようだ。
最後に、テンプレートとなるExcelファイルを指定し、出力結果を得るのがreviseFileメソッドである。引数は入力ファイル、出力ファイル名、出力パスだが、出力パスを省略すると、結果がブラウザに渡される。出力ファイル名を指定すると、ダウンロードを選択した際に、保存ファイル名として利用される。
 
基本的には、以上の手順のみで普通にExcelファイルが編集して出力できる。簡単だ。
 
 
 
 
 
【PHPの最新記事】
posted by Tig3r at 16:54| Comment(0) | TrackBack(0) | PHP
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/12424229

この記事へのトラックバック