BlockRowRepeatParamParserを使用すると、セルの幅や行の高さがテンプレートと違ってしまう

1,432 views
Skip to first unread message

seki

unread,
Jan 12, 2010, 12:00:08 AM1/12/10
to excella
関と申します。お世話になっております。

$BR[]タグ(BlockRowRepeatParamParser)の仕様についてお聞きしたいことがあります。

Excelテンプレートに$BR[]タグを記述して繰り返しを行いましたところ、
セルの幅や行の高さが、${}タグを記述しているセルのサイズと異なって
出力されてしまいます。
(自動でサイズ調整等が行われているのではないかと思います。)

POIの問題かもしれませんが、これはこういう仕様なのかどうか教えて下さい。
また、何か対応方法等ありましたら、合わせて教えていただけると助かります。

以上、宜しくお願い致します。

横井@bbreak

unread,
Jan 15, 2010, 12:53:46 AM1/15/10
to excella
お世話になります。横井です。

返信遅くなりました。
あまりよろしくないのですが、現在の実装は下記のようになっています。

①$BR[]で展開された場合
 行の高さをコピーしていないため展開された行はデフォルトの高さになる

②$BC[]で展開された場合
 展開先の列の幅が、展開元の列の幅より小さければ広げる
 展開先の列の幅が、展開元の列の幅より大きければそのまま

①については行の高さをコピーすべきだと思いますので、そのように修正して
POI3.6への対応と合わせて次週中にリリースする予定としました。

こちらの修正はコミットしてありますので、もしお急ぎであればソースをビルドしていただくか、
ご連絡いただければ個別でリリースする事も可能です。

以上、よろしくお願いします。

seki

unread,
Jan 15, 2010, 6:35:25 AM1/15/10
to excella
関です。

対応ありがとうございます。来週中にリリースであれば十分ですので、
個別リリースは不要です。これで行の高さの問題は解決します。

それで一点確認したいのですが、$BR[]タグの場合、列の幅の実装はどのように
なっているのでしょうか?
返信の内容からは読み取れませんでしたので、お手数ですが確認をお願い致します。

以上、宜しくお願い致します。

横井@bbreak

unread,
Jan 17, 2010, 9:03:06 PM1/17/10
to excella
横井です。

$C[] or $BC[]が$BR[]内に含まれていると列幅も
変更される可能性がありますが、$BR[]のみであれば
展開元の幅が保持されるはずです。

以上、よろしくお願いします。

> > > 以上、宜しくお願い致します。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

seki

unread,
Jan 18, 2010, 11:12:11 PM1/18/10
to excella
関です。

いろいろテストしてみましたところ、特定の場合に$BR[]タグで列幅がテンプレートと
変わってしまうことが分かりました。

サンプルとして、「BlockRowRepeatParamParser問合せ.zip」というファイル
を先程アップロードしました。
これを展開すると、以下の2つのExcelファイルになります。

・交通費申請書テンプレート.xls
・交通費申請書サンプル.xls

この「交通費申請書テンプレート.xls」を excella-reports-all の samples
のテンプレートと差し替え、TransExpenseReporter を ExcelExporter にして
実行すると、「交通費申請書サンプル.xls」が出力されます。

その結果、テンプレートでは“降車”の列幅を 5 にしていますが、
出力すると列幅が広がっていることが確認できると思います。
→どうも、$BR[] の繰り返し行より1行以上空いたセルに入力があり、かつ列幅
が狭い場合、そのセルの影響を受けて列幅が広がってしまうようです。

ExcelやPOIの問題なのかもしれませんが、上記のケースに該当するパターンは
当然発生しますので、何らかの対応をしていただければと思います。
まずは状況を確認していただけないでしょうか?

以上、宜しくお願い致します。

横井@bbreak

unread,
Jan 19, 2010, 12:39:48 AM1/19/10
to excella
関さん

お世話になります。横井です。

詳細な情報ありがとうございます。
おかげさまで現象を確認できました。

原因は調査中ですが、できるだけ今週のリリースに間に合うように進めます。

以上、よろしくお願いします。

横井@bbreak

unread,
Jan 20, 2010, 12:02:46 AM1/20/10
to excella
関さん

お世話になります。横井です。

$BR[]の行の高さ、列の幅の問題の修正版(1.3)を先ほどリリースいたしました。
#POI、ExCella Coreのバージョンも上げる必要がありますのでご注意ください。

列の幅が変わってしまう原因は、$BR[]の範囲より下にセルがあった場合は
1.別シートを作成し$BR[]を展開
2.元シートに展開した内容を反映
3.別シートを削除
という流れで処理をしているのですが、2の元シートに展開した内容を反映する
際に別シートの列幅に影響を受けてしまっていたためでした。

貴重な情報ありがとうございました。

以上、よろしくお願いします。

seki

unread,
Jan 20, 2010, 3:00:27 AM1/20/10
to excella
関です。

対応ありがとうございます。
先程ExCella Core、Reportsのバージョンを上げて試しましたところ、テンプレートのサイズ通りに
出力できました。
(ちなみにmavenベースで運用している為、リポジトリにないライブラリの更新は多少手間が
かかるのでPOIはとりあえず旧バージョンのままでテストしましたが、大丈夫でした。)

今回の問題はこれで解決しましたので、本問合せは終了致します。
早急に対応していただき、ありがとうございました。

Reply all
Reply to author
Forward
0 new messages