4.1 Excelファイルを生成するサンプル
概要
ここでは、レイアウトファイル(XMLファイル)を読込み、Excelファイルとして出力する例を記述します。
ファイルの出力形式は、Microsoft Excel 97ファイル形式 (xls形式) または Microsoft Excel 2007ファイル形式 (xlsx形式) を選択することができます。出力形式の指定方法については
『1.3 Excelの出力ファイル形式』をご参照ください。
以下のサンプルでは、出力ファイル名からxlsx 形式を指定しています。
サンプル構成
| 項目 | ファイルパス |
|---|---|
| ドキュメントレイアウトサンプル |
<biz-Stream_home>/sample/excel_csv/ExcelSample_doc.xml
|
| ページレイアウトサンプル |
<biz-Stream_home>/sample/excel_csv/ExcelSample_page.xml
|
| CSVデータソース(ヘッダデータ) |
<biz-Stream_home>/sample/excel_csv/header.csv
|
| CSVデータソース(明細データ) |
<biz-Stream_home>/sample/excel_csv/detail.csv
|
| ソースサンプル |
<biz-Stream_home>/sample/excel_csv/XmlToXlsxSample.java
|
| 出力結果サンプル(xlsx形式) |
<biz-Stream_home>/sample/excel_csv/XmlToXlsxSample.xlsx
|
| 出力結果サンプル(xls形式) |
<biz-Stream_home>/sample/excel_csv/XmlToXlsSample.xls
|
ソースサンプル
import java.io.FileNotFoundException;
import java.io.IOException;
import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
import com.brainsellers.xml.page.ExcelEngine;
class XmlToXlsxSample {
// XMLファイル名
private String xml_file = "${base-dir}/sample/excel_csv/ExcelSample_doc.xml";
// Excelファイル名
private String xlsx_file = "${base-dir}/sample/excel_csv/XmlToXlsxSample.xlsx";
// private String xls_file = "${base-dir}/sample/excel_csv/XmlToXlsxSample.xls";
public static void main(String argv[]) {
new XmlToXlsxSample(argv);
System.exit(0);
}
/**
* コンストラクタ
*
* @param argv
* 起動時の引数
*/
public XmlToXlsxSample(String argv[]) {
try {
// (1) 出力ファイル名を指定する
ExcelEngine excel = new ExcelEngine(xlsx_file);
// (2) ストリーム出力の場合は setFormat を使用して出力ファイル形式を指定する
// ファイル名指定の場合は、(1)の出力ファイル名で指定した拡張子よりも setFormat で指定したファイル形式が優先される
// excel.setFormat(ExcelEngine.FORMAT_XLSX); // xlsxファイル形式
// excel.setFormat(ExcelEngine.FORMAT_XLS); // xlsファイル形式
// (3) ワークシートの設定を行う
excel.setMultiSheet(true); // 改ページごとにワークシートを生成して出力
// excel.setMultiSheet(false); // 単一ワークシートに出力
// (4) 出力はExcel出力エンジンを指定する
XMLSuper xml = new JaxpXML(xml_file, excel);
// (5) レイアウト情報(XML)の解析を行う
xml.parse();
// (6)データソースを設定する
// 表のヘッダ
xml.setDataSource("header-data","${base-dir}/sample/excel_csv/header.csv", "UTF-8");
// 表の明細データ
xml.setDataSource("detail-data","${base-dir}/sample/excel_csv/detail.csv", "UTF-8");
// (7) 座標計算を行う
xml.calcDataSize();
// (8) Excelデータの生成
xml.toPDF();
// (9) Excelファイルを出力する
xml.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- biz-Streamを利用する場合には、製品ライセンスチェックの仕組みにより、明示的にSystem.exit(0)を呼び出さない限り、Javaのプロセスは終了しません。 ただし、Servletで本機能を使用する際は上記命令の記載は必要ありません。
