sMashでは、Apache POIをモジュールとして提供しています。Apache POIは、Microsoft Officeのファイルを操作するAPIを提供するJavaのモジュールです。これを利用することで、sMashで容易にApache POIの利用環境を作ることができます。また、Java Bridgeを利用することで、PHPを用いてMicrosoft Officeのファイルを操作することが可能です。
●利用するための準備
Apache POIは、zero.office.integrationという名前で提供されています。このモジュールへの依存性を、ivy.xmlに追加します。これで準備は完了です。
●Excelファイルを作ってみる
まず最初に、Excelファイルを生成してみましょう。せっかくですので、ここではPHPでやってみましょう。generate.phpとして、次のファイルをpublicフォルダに作成してください(コピー&ペーストするとダブルクォーテーションが全角になるので注意して下さい)。
<?php
java_import(”java.io.FileOutputStream”);
java_import(”org.apache.poi.hssf.usermodel.HSSFWorkbook”);
java_import(”org.apache.poi.poifs.filesystem.POIFSFileSystem”);
$filedir = zget(”/config/root”).”\\public\\sMash.xls”;
try{
//新規ワークブックを作成する
$wb = new HSSFWorkbook();
$fileOut = new FileOutputStream($filedir);
//新規ワークシートを作成する
$sheet = $wb->createSheet();
$wb->setSheetName(0, “シート01″, $wb->ENCODING_UTF_16);
//A1に日本語を書き込む
$row = $sheet->createRow(0);
$cell = $row->createCell(0);
$cell->setEncoding($wb->ENCODING_UTF_16);
$cell->setCellValue(”sMashでExcelファイルを作りました!”);
//終了処理
$wb->write($fileOut);
$fileOut->close();
echo(”Excelファイルの作成が完了しました!”);
} catch (Exception $e) {
echo $e;
echo(”処理が失敗しました”);
}
?>
作成したら、sMashアプリケーションを起動し、http://localhost:8080/generate.phpにアクセスしてみてください。publicフォルダ内にsMash.xlsファイルが生成されているはずです。
●Excelファイルを読み込んでみる
では、そのExcelファイルを読み込んで、PHPで文字列として表示してみましょう。read.phpとして、次のファイルをpublicフォルダに作成してください(コピー&ペーストするとダブルクォーテーションが全角になるので注意して下さい)。
<?php
java_import(”java.io.FileInputStream”);
java_import(”org.apache.poi.hssf.usermodel.HSSFWorkbook”);
java_import(”org.apache.poi.poifs.filesystem.POIFSFileSystem”);
$filedir = zget(”/config/root”).”\\public\\sMash.xls”;
try{
//ファイル読み込み
$filein = new POIFSFileSystem(new FileInputStream($filedir));
//1つ目のシートの、A1を示すセルのオブジェクトを取得する
$wb = new HSSFWorkbook($filein);
$sheet = $wb->getSheet($wb->getSheetName(0));
$row = $sheet->getRow(0);
$cell = $row->getCell(0);
//文字列を取得し、出力
echo $cell->getStringCellValue();
} catch (Exception $e) {
echo $e;
echo(”処理が失敗しました”);
}
?>
作成したら、sMashアプリケーションを起動し、http://localhost:8080/read.phpにアクセスしてみてください。”sMashでExcelファイルを作りました!”と表示されていれば成功です。
●参考情報
他にもApache POIでは、計算式を読み込んだり、セルにコメントを追加したり、そのコメントを読み込んだり、様々なAPIが提供されています。詳細については、Apache POIのWebサイトをご参照下さい。http://poi.apache.org/

Leave a Reply