webからエクセルファイルに吐き出す方法

こんにちわ。

最近、ASPからEXCELファイルに吐き出す方法として、
ヘッダー情報を変更して吐き出すという方法を記事にしておりましたが、
こちらそのまま保存すると.filesなどの余分なファイルを外部に保存してしまうため、
あくまで、参照するファイルとしての吐き出し方法となります。

では、保存できるようにするにはどうすればよいかという考え方の話になるのですが…

1.吐き出すファイルの上書き保存を禁止にする
こちらは、エクセルファイルの属性を「読み取り専用」にさせる方法です。
ASPの場合には、
fileObject.Attributesプロパティを使用して、ReadOnly(1)にすると、
上書きが出来なくなるようになります。
そしてファイル操作をするユーザーには別名で保存してもらう形であれば、
本来のバイナリーEXCELファイルに保存することが出来ます。

2.ASP直接変換するのではなく、IISサーバー上にてEXCEL起動してファイルを作る
こちらは色々なサイトに記載されているので、方法は省きますが、
サーバー上のEXECLを起動してコマンドラインを利用して、
EXECLファイルを作るという形です。
こちらはEXCELのライセンスも必要ですし、何かとコストがかかるのかなと…

3.ASPの動いているIISサーバー上にphpを導入してPHPExcelでエクセルファイルをつくる
一番、コストもかからず、やりやすいのはこちらの方法ではないでしょうか?
PHPExcelというライブラリがあり、こちらを利用することでバイナリーのエクセルファイルを
作ることが出来ます。

方法は

・ライブラリを読み込んで、
・PHPEXCELライブラリからオブジェクトを作成し、
・指定のセルに値を入れて、
・ファイルを書き込んで
・終わり

という流れです。セルの指定方法も、
列・行でA1とかもいいですし、
列が動的なこともあるので、(5,5)という感じもOKです。
もちろん、罫線や背景色の変更も可能です。

方法というよりも今回は考え方に近いですが、ご参考になれば…

それでは、また

Pocket