1. トップ >
  2. 製品・サービス >
  3. biz-Stream >
  4. サポート情報 >
  5. biz-Stream Excel書き出し機能での表示内容について

biz-Stream サポート情報

RSS

biz-Stream Excel書き出し機能での表示内容について

2010年06月15日

biz-Stream Excel書き出し機能により、表<fo:table>を使用した出力結果のホットフィックス毎の違いについて説明いたします。

1. Excel書き出し機能におけるホットフィックス毎の差異および今後の方針

biz-Stream Excel書き出し機能とは、biz-Streamレイアウトファイルから Excel形式のファイルを生成する機能です。
biz-Streamのこの機能により、1つのレイアウトファイルから、PDF、Exel、CSV等の様々な形式の帳票を生成することができます。

しかし、この機能によりExcelの「セル」に出力する際、各ホットフィックスにより出力結果が異なる現象が発生します。このため、ホットフィックス v4.5.3にて仕様を整理し、Excel書き出し機能の出力を一部変更します。

この仕様変更により、Excel書き出し機能をご利用中で最新のホットフィックスを適用した場合、今までと出力結果が変わってしまう可能性があります。
以下に各ホットフィックスの出力結果を比較しますので、ホットフィックス適用の際にはレイアウトファイルの設定変更および出力結果の確認をお願いいたします。

2. biz-Stream Excel書き出し機能について

2-1. Excelのセルに出力する要素

biz-Streamページレイアウトファイルの繰り返し制御タグで、表形式の出力を行う要素には表<fo:table>フレーム<flow-area>があります。
このうち、フレーム<flow-area>を使用した場合には、Excelの「セル」には出力されず、「オートシェイプ」として出力します。表<fo:table>内部に、以下の要素を配置した場合のみ、Excelの「セル」に出力します。

《 表<fo:table>内で利用した場合、Excel のセルに出力する要素 》
・横書きテキスト <Label>
・縦書きテキスト <VerticalLabel>
・リンク付き横書きテキスト <LinkLabel>
・リンク付き縦書きテキスト <LinkVerticalLabel>
・通貨形式テキスト <Currency>
・複数行横書きテキスト <multi-text>
・複数行縦書きテキスト <multi-vtext>
・ページ番号テキスト <page-number>
・日付テキスト <datetime-text>

※ 今回、表<fo:table>として縦方向表に関しての記述となっていますが、これは横方向に伸びる横方向表<fo:htable>でも同様の出力となります。

2-2. Excel のセル内に配置する 横書きテキスト<Label> および 通貨形式テキスト<Currency>について
● 横書きテキスト<Label> / リンク付き横書きテキスト<LinkLabel>
横書き一行のテキストを表示する要素です。
リンク付き横書きテキスト<LinkLabel>は、<Label>にリンク先(URI)を付加した要素です。出力結果は横書きテキスト<Label>と同様です。このため、以下横書きテキスト<Label>と書かれている項目はすべてリンク付き横書きテキスト<LinkLabel>にも当てはまります。
● 通貨形式テキスト<Currency>
数値や通貨の表示形式を設定して表示する要素です。
表示形式はJava2 API のDecimal Formatに準拠した形式をFormat属性に指定します。

Excel書き出し機能では、上記のそれぞれの要素を表<fo:table>内に配置し、レイアウトファイル内での設定、および入力データにより、その内容がセルの文字列又は数値として出力されます。

3. 出力結果の比較パターン

3-1. ホットフィックスのパターン

セルに出力される内容はホットフィックス毎に異なるため、以下5パターンのホットフィックスで出力結果を比較します。

  1. a)v4.4.4 以前
  2. b)v4.4.6
  3. c)v4.4.7 ~ v4.5.0
  4. d)v4.5.1 ~ v4.5.2
  5. e)v4.5.3 以降
3-2. レイアウトファイルの定義パターン

レイアウトファイルでの定義により出力結果が異なるのは、以下のパターンです

● ページレイアウトファイルでの要素および表示形式
ページレイアウトで定義するパターンとして、横書きテキスト<Label>と通貨形式テキスト<Currency>の2つがあります。
このうち、通貨形式テキスト<Currency>では、Format属性の設定有無により出力結果が異なります。
今回はFormat属性に「##,##円」を設定した結果で比較します。
● ドキュメントレイアウトのフィールド定義でのカラムタイプ設定
biz-Streamの入力データは、データベース、ハッシュ、CSVが利用可能です。
これらのデータをbiz-Streamにて処理する際に、ドキュメントレイアウトの「データ設定 / フィールド定義のカラムタイプ設定(<bs:data-type> の type属性)」によりデータ型を明示的に指定することができます。
このカラムタイム設定によりbiz-Stream内部での処理が異なり、出力結果も異なります。
横書きテキスト<Label>,通貨形式テキスト<Currency>へデータを設定する際に使用するデータ型は「char / varchar / smallint / long / integer / float / double / decimal」です。
また、これらは、文字列型・数値型の 2パターンに分けられます。
  • 文字列型: char / varchar
  • 数値型: smallint / long / integer / float / double / decimal
biz-Streamレイアウトデザイナによるカラムタイプ設定

《 図1. biz-Streamレイアウトデザイナによるカラムタイプ設定 》

以上のパターン、つまり横書きテキスト<Label>と通貨形式テキスト<Currency>に対してカラムタイプを文字列型/数値型の組み合わせ、さらに通貨形式テキスト<Currency>に対してはFormat属性の設定の有無、計6パターンで出力結果の比較を行います。

《 レイアウトファイルの定義パターン 》
パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン1 横書きテキスト<Label> - 文字列型「char」
パターン2 数値型 「decimal」
パターン3 通貨形式テキスト<Currency> なし 文字列型「char」
パターン4 数値型 「decimal」
パターン5 あり「##,##円」 文字列型「char」
パターン6 数値型 「decimal」
3-3. 入力元データ

フィールド定義のカラムタイプで定義するデータ型によって設定可能なデータが異なることから、文字列型・数値型それぞれに使用するデータは以下とします。

《 文字列型のカラムに対して使用するデータ 》
No 使用データ 説明
1 1234 半角数字のみ
2 0123 半角数字で、先頭が0
3 $123 半角数字で、先頭が米ドル記号
4 123円 半角数字で、後ろに全角文字列
5 123.456 半角数字で、小数
6 biz-Stream 文字列
7 biz-Stream4.5 文字列が先頭、後ろに数字
8 1234 全角数字
《 数値型のカラムに対して使用するデータ 》
No 使用データ 説明
1 1234 半角数字のみ
2 0123 半角数字で、先頭が0
3 123円 半角数字で、後ろに全角文字列
4 123.456 半角数字で、小数

4. biz-Stream Excel書き出し機能 v4.5.3での改修について

ホットフィックス v4.5.3でExcel書き出し機能の仕様を整え、改修を行います。
表<fo:table> を使用してセルに出力する場合の主な変更点は下記です。

【改修1】 横書きテキスト<Label>を使用しているものは文字列として出力する
【改修2】 通貨形式テキスト<Currency>を使用しているものは数値として出力する
【改修3】 通貨形式テキスト<Currency>で文字列データが設定された場合は出力しない

「3. 出力結果の比較パターン」を元に、今後のリリースと過去のホットフィックスでの出力結果の比較を行います。

5. 出力結果

結果表中の「」と表記した部分ではデータが数値として出力され、Excelにおいて数式を用いた計算等を行うこが可能です。
」と表記した部分では、データが文字列として出力され、Excelにおいて数値として数式を用いた計算等を行うことができません。

また、Excelセル内の文字列の横位置設定は、常に左寄せで出力します。

表後のコメントは e) v4.5.3 以降 を基準として異なるホットフィックスについて説明しています。
また、e) v4.5.3以降と出力結果が異なるパターンは、背景色がピンク色のセルですので、ご利用中のレイアウトファイルの設定およびデータをご確認ください。

5-1. 【パターン1】 横書きテキスト<Label>、ドキュメントレイアウトのフィールド定義のカラムタイプ設定が文字列型の場合
パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン1 横書きテキスト<Label> - 文字列型「char」
No 元データ a) v4.4.4 以前 b) v4.4.6 c) v4.4.7
~ v4.5.0
d) v4.5.1
~ v4.5.2
e) v4.5.3 以降
1 1234 1234 1234 1234 1234 1234
2 0123 123 123 123 123 0123
3 $123 $123 $123 $123 $123 $123
4 123円 123円 123 123 123円 123円
5 123.456 123.456 123.456 123.456 123.456 123.456
6 biz-Stream biz-Stream biz-Stream biz-Stream biz-Stream biz-Stream
7 biz-Stream4.5 biz-Stream4.5 biz-Stream4.5 biz-Stream4.5 biz-Stream4.5 biz-Stream4.5
8 1234 1234 1234 1234 1234 1234
● No.1 半角数字のみ  /  No.5 半角数字で、小数
a) v4.4.4以前、b) v4.4.6、c) v4.4.7~v4.5.0、d) v4.5.1~v4.5.2と出力が異なります。【改修1】
e) v4.5.3 以降 とは表示される文字列は変わりませんが、文字列として出力します。
また、a) v4.4.4以前では、文字列の横位置の配置についても異なります。
数値として出力するには、通貨形式テキスト<Currency>を使用してください。
● No.2 半角数字で、先頭が0
a) v4.4.4以前、b) v4.4.6、c) v4.4.7~v4.5.0、d) v4.5.1~v4.5.2と出力が異なります。【改修1】
e) v4.5.3 以降では、先頭の0がついたままかつ、文字列で出力します。
数値として出力するには、通貨形式テキスト<Currency>を使用してください。
● No.4 半角数字で、後ろに全角文字列
b) v4.4.6、c) v4.4.7~v4.5.0と出力が異なります。【改修1】
e) v4.5.3 以降では、半角数字の後の全角文字列がそのまま出力します。
数値として出力するには、半角数字だけのデータ入力および通貨形式テキスト<Currency>を使用してください。
● No.8 全角数字
b) v4.4.6、c) v4.4.7~v4.5.0と出力が異なります。【改修1】
e) v4.5.3 以降では、全角数字のまま、文字列で出力します。
数値として出力するには、半角数字のデータを入力および通貨形式テキスト<Currency>を使用してください。
5-2. 【パターン2】 横書きテキスト<Label>、ドキュメントレイアウトのフィールド定義のカラムタイプ設定が数値型の場合
パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン1 横書きテキスト<Label> - 数値型「decimal」

下記はdecimal(実数型)での出力結果です。整数型の場合には小数点以下は表示されません。

No 元データ a) v4.4.4 以前 b) v4.4.6 c) v4.4.7
~ v4.5.0
d) v4.5.1
~ v4.5.2
e) v4.5.3 以降
1 1234 1,234 1234 1234 1,234 1,234
2 0123 123 123 123 123 123
3 123円 123 123 123 123 123
4 123.456 123.456 123.456 123.456 123.456 123.456
●No.1 半角数字のみ
b) v4.4.6、c) v4.4.7~v4.5.0と出力が異なります。【改修1】
d) v4.5.1~v4.5.2、e) v4.5.3 以降では、三桁ごとにカンマを付けた文字列で出力します。
カンマを付けずに出力するには、ドキュメントレイアウトのカラムタイプを、文字列型「char」に設定してください。
また、数値として出力するには、通貨形式テキスト<Currency>を使用してください。
●No.2 半角数字で、先頭が0 / No.3 半角数字で、後ろに全角文字列
a) v4.4.4以前、b) v4.4.6、c) v4.4.7~v4.5.0、d) v4.5.1~v4.5.2と出力が異なります。【改修1】
e) v4.5.3 以降では、文字列で出力します。
また、a) v4.4.4 以前とは、文字列の横位置の配置が異なります。
数値として出力するには、通貨形式テキスト<Currency>を使用してください。
●No.4 半角数字で、小数
a) v4.4.4以前、b) v4.4.6、c) v4.4.7~v4.5.0、d) v4.5.1~v4.5.2と出力が異なります。【改修1】
e) v4.5.3 以降では、文字列で出力します。
また、a) v4.4.4 以前とは、文字列の横位置の配置が異なります。
数値として出力するには、通貨形式テキスト<Currency>を使用してください
5-3. 通貨形式テキスト<Currency>、ドキュメントレイアウトのフィールド定義のカラムタイプ設定が文字列型の場合

【パターン3】 Format属性を設定しないパターン

パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン3 通貨形式テキスト<Currency> なし 文字列型「char」
No 元データ a) v4.4.4 以前 b) v4.4.6 c) v4.4.7
~ v4.5.0
d) v4.5.1
~ v4.5.2
e) v4.5.3 以降
1 1234 1,234 【出力せず】 1,234 1,234 1,234
2 0123 123 【出力せず】 123 123 123
3 $123 0 【出力せず】 $123 $123 【出力せず】
4 123円 123 【出力せず】 123 123円 【出力せず】
5 123.456 123 【出力せず】 123 123 123
6 biz-Stream 0 【出力せず】 biz-Stream biz-Stream 【出力せず】
7 biz-Stream4.5 0 【出力せず】 biz-Stream4.5 biz-Stream4.5 【出力せず】
8 1234 1,234 【出力せず】 1,234 1234 【出力せず】

【パターン4】 Format属性に「##,##円」を設定

パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン4 通貨形式テキスト<Currency> あり「##,##円」 文字列型「char」
No 元データ a) v4.4.4 以前 b) v4.4.6 c) v4.4.7
~ v4.5.0
d) v4.5.1
~ v4.5.2
e) v4.5.3 以降
1 1234 12,34円 【出力せず】 1,234円 1,234円 1,234円
2 0123 1,23円 【出力せず】 123円 123円 123円
3 $123 0円 【出力せず】 $123 $123 【出力せず】
4 123円 1,23円 【出力せず】 123円 123円 【出力せず】
5 123.456 1,23円 【出力せず】 123円 123円 123円
6 biz-Stream 0円 【出力せず】 biz-Stream biz-Stream 【出力せず】
7 biz-Stream4.5 0円 【出力せず】 biz-Stream4.5 biz-Stream4.5 【出力せず】
8 1234 12,34円 【出力せず】 1,234円 1234 【出力せず】
● No.1 半角数字のみ / No.2 半角数字で、先頭が0 / No.5 半角数字で、小数
a) v4.4.4 以前と出力が異なります。【改修2】
e) v4.5.3 以降 では、Format属性がある場合でも数値データとして出力し、カンマ(,)の位置が異なります。
文字列として出力するには、横書きテキスト<Label>を使用してください。
● No.3 半角数字で、先頭が米ドル記号 / No.4 半角数字で、後ろに全角文字列 / No.6 文字列 / No.7 文字列が先頭、後ろに数字 / No.8 全角数字
a) v4.4.4 以前、c) v4.4.7~v4.5.0、d) v4.5.1~v4.5.2と出力が異なります。【改修3】
e) v4.5.3 以降では、入力されたデータに半角数値以外が含まれる場合、出力しません。
文字列として出力するには、横書きテキスト<Label>を使用してください。
5-4. 通貨形式テキスト<Currency>、ドキュメントレイアウトのフィールド定義のカラムタイプ設定が数値型の場合

【パターン5】 Format属性を設定しないパターン

パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン5 通貨形式テキスト<Currency> なし 数値型「decimal」
No 元データ a) v4.4.4 以前 b) v4.4.6 c) v4.4.7
~ v4.5.0
d) v4.5.1
~ v4.5.2
e) v4.5.3 以降
1 1234 1,234 【出力せず】 1,234 1,234 1,234
2 0123 123 【出力せず】 123 123 123
3 123円 123 【出力せず】 123 123 123
4 123.456 123 【出力せず】 123 123 123

【パターン6】 Format属性に「##,##円」を設定するパターン

パターン ページレイアウト ドキュメントレイアウト
要素 Format属性 カラムタイプ設定
パターン6 通貨形式テキスト<Currency> あり「##,##円」 数値型「decimal」
No 元データ a) v4.4.4 以前 b) v4.4.6 c) v4.4.7
~ v4.5.0
d) v4.5.1
~ v4.5.2
e) v4.5.3 以降
1 1234 12,34円 【出力せず】 1,234円 1,234 1,234円
2 0123 1,23円 【出力せず】 123円 123円 123円
3 123円 1,23円 【出力せず】 123円 123円 123円
4 123.456 1,23円 【出力せず】 123円 123円 123円
● No.1 半角数字のみ
a) v4.4.4 以前、d) v4.5.1~v4.5.2と出力が異なります。【改修2】
e) v4.5.3 以降では、数値データとして出力します。
またFormat属性を設定した場合、a) v4.4.4 以前とはカンマ(,)の位置が異なり、Format で設定した全角文字列も表示されます。
d) v4.5.1~v4.5.2では Format が設定されませんでしたが、e) v4.5.3 以降では設定されるようになります。
文字列として出力するには、横書きテキスト<Label>を使用してください。
● No.2 半角数字で、先頭が0 / No.3 半角数字で、後ろに全角文字列 / No.4 半角数字で、小数
a) v4.4.4 以前と出力が異なります。【改修2】
e) v4.5.3 以降では左寄せで出力するようになります。
Format属性を設定した場合にも数値データとして出力します。またカンマ(,)の位置が異なります。
文字列として出力するには、横書きテキスト<Label>を使用してください。

6. 留意事項

今回の仕様変更により、文字列・数値の処理を厳格化しています。
このため、新規ホットフィックスを適用後に表示されなくなるパターンもありますので、ホットフィックス適用前には、事前にデータおよびレイアウトファイルの設定見直し、実際の出力の確認をお願いいたします。