$BR[]タグ(BlockRowRepeatParamParser)の仕様についてお聞きしたいことがあります。
Excelテンプレートに$BR[]タグを記述して繰り返しを行いましたところ、
セルの幅や行の高さが、${}タグを記述しているセルのサイズと異なって
出力されてしまいます。
(自動でサイズ調整等が行われているのではないかと思います。)
POIの問題かもしれませんが、これはこういう仕様なのかどうか教えて下さい。
また、何か対応方法等ありましたら、合わせて教えていただけると助かります。
以上、宜しくお願い致します。
返信遅くなりました。
あまりよろしくないのですが、現在の実装は下記のようになっています。
①$BR[]で展開された場合
行の高さをコピーしていないため展開された行はデフォルトの高さになる
②$BC[]で展開された場合
展開先の列の幅が、展開元の列の幅より小さければ広げる
展開先の列の幅が、展開元の列の幅より大きければそのまま
①については行の高さをコピーすべきだと思いますので、そのように修正して
POI3.6への対応と合わせて次週中にリリースする予定としました。
こちらの修正はコミットしてありますので、もしお急ぎであればソースをビルドしていただくか、
ご連絡いただければ個別でリリースする事も可能です。
以上、よろしくお願いします。
対応ありがとうございます。来週中にリリースであれば十分ですので、
個別リリースは不要です。これで行の高さの問題は解決します。
それで一点確認したいのですが、$BR[]タグの場合、列の幅の実装はどのように
なっているのでしょうか?
返信の内容からは読み取れませんでしたので、お手数ですが確認をお願い致します。
以上、宜しくお願い致します。
$C[] or $BC[]が$BR[]内に含まれていると列幅も
変更される可能性がありますが、$BR[]のみであれば
展開元の幅が保持されるはずです。
以上、よろしくお願いします。
> > > 以上、宜しくお願い致します。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
いろいろテストしてみましたところ、特定の場合に$BR[]タグで列幅がテンプレートと
変わってしまうことが分かりました。
サンプルとして、「BlockRowRepeatParamParser問合せ.zip」というファイル
を先程アップロードしました。
これを展開すると、以下の2つのExcelファイルになります。
・交通費申請書テンプレート.xls
・交通費申請書サンプル.xls
この「交通費申請書テンプレート.xls」を excella-reports-all の samples
のテンプレートと差し替え、TransExpenseReporter を ExcelExporter にして
実行すると、「交通費申請書サンプル.xls」が出力されます。
その結果、テンプレートでは“降車”の列幅を 5 にしていますが、
出力すると列幅が広がっていることが確認できると思います。
→どうも、$BR[] の繰り返し行より1行以上空いたセルに入力があり、かつ列幅
が狭い場合、そのセルの影響を受けて列幅が広がってしまうようです。
ExcelやPOIの問題なのかもしれませんが、上記のケースに該当するパターンは
当然発生しますので、何らかの対応をしていただければと思います。
まずは状況を確認していただけないでしょうか?
以上、宜しくお願い致します。
お世話になります。横井です。
詳細な情報ありがとうございます。
おかげさまで現象を確認できました。
原因は調査中ですが、できるだけ今週のリリースに間に合うように進めます。
以上、よろしくお願いします。
お世話になります。横井です。
$BR[]の行の高さ、列の幅の問題の修正版(1.3)を先ほどリリースいたしました。
#POI、ExCella Coreのバージョンも上げる必要がありますのでご注意ください。
列の幅が変わってしまう原因は、$BR[]の範囲より下にセルがあった場合は
1.別シートを作成し$BR[]を展開
2.元シートに展開した内容を反映
3.別シートを削除
という流れで処理をしているのですが、2の元シートに展開した内容を反映する
際に別シートの列幅に影響を受けてしまっていたためでした。
貴重な情報ありがとうございました。
以上、よろしくお願いします。
対応ありがとうございます。
先程ExCella Core、Reportsのバージョンを上げて試しましたところ、テンプレートのサイズ通りに
出力できました。
(ちなみにmavenベースで運用している為、リポジトリにないライブラリの更新は多少手間が
かかるのでPOIはとりあえず旧バージョンのままでテストしましたが、大丈夫でした。)
今回の問題はこれで解決しましたので、本問合せは終了致します。
早急に対応していただき、ありがとうございました。