Webアプリなんだから、フォームで入力すればいいだろうと考えがちですが、入力項目が多かったり、申請書のように慎重に入力しないといけないものは、なんとなくせかされているようで、記入しづらいものです。
そんなときは、入力フォームとして、エクセルファイルを利用するのもひとつの方法です。
サーバーがWindowsならまだしも、Linuxサーバでは、MicrosoftのOfficeファイルの扱いは難しいです。しかし、PHPならPHPExcelで簡単にシートのセルの内容を取り出すことができます。
Excelには大きくわけて、Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsxの2種類が存在します。後者は基本的にXMLファイルですが、いざ読もうと思うと面倒です。
PHPExcelはどちらのファイルにも対応していて、簡単に扱うことができます。先頭のシートのA1セルの内容を読み込むサンプルを示しておきます。
フォームを作成したエクセルファイルを一旦ダウンロードしてもらって、記入後アップロードして、内容を検査するといったことを想定しています。
$objPHPExcel = PHPExcel_IOFactory::load("hoge.xls"); $objPHPExcel->setActiveSheetIndex(0); echo $objPHPExcel->getActiveSheet()->getCell("A1")->getValue();
エクセルのセルのロック(Excel2003なら書式メニュー→セル→保護※シートのロックで有効になります)、入力規則、入力モード(Excel2003なら、データメニュー→入力規則)、VBAマクロでの検査とあわせて利用すると、エクセルを使ったフォーム入力も場合によっては便利で優しいUIになります。
しかし、サーバサイドでも同様の検査が必要なので、開発保守時は二度手間になりますね。