BCの下に定義しているBRの範囲途切れについて

178 views
Skip to first unread message

tksr...@gmail.com

unread,
Mar 12, 2014, 10:11:20 PM3/12/14
to exc...@googlegroups.com

改めて質問させて頂きます。
芹澤と申します。

現在、上にBCを定義し、の下を範囲として指定しているBRが

BCの下にBRを定義しています。
BRはxls形式の最大である横幅を指定しているため、BCとは列が被っています。
BCの範囲はBRと被らない範囲で指定している状態です。

◆イメージ図◆
→:移動方向
|:BCの範囲
-:BRの範囲

     BC →
     |    →
     |    →
BR
--------------------------------
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓


この状態で処理を実行した場合、BCの繰り返し回数分だけ列単位で挿入されてしまい、BRが途切れてしまいました。

◆イメージ図◆
→:移動方向
|:BCの範囲
-:BRの範囲
□:挿入されてしまったセル

     BC BC BC →
     |     |     |    →
     |     |     |    →
BR
---- □ □ □ ----------------------------
---- □ □ □ ----------------------------
---- □ □ □ ----------------------------
---- □ □ □ ----------------------------
↓↓          ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓


BCは指定した範囲のみで繰り返し、BRに影響が出ないようにすることは出来ないのでしょうか?

以上になります。ご回答いただければ幸いです。

神園和秀

unread,
Mar 24, 2014, 4:24:58 AM3/24/14
to exc...@googlegroups.com
こんにちは、神園です。

BCタグで繰り返す場合、全ての行をずらすのが仕様ですが、
ソースを下記のように変更すると、指定範囲のみずらすことはできそうです。

org.bbreak.excella.reports.tag.BlockColRepeatParamParser.java:278

- CellRangeAddress rangeAddress = new CellRangeAddress( blockStartRowIndex, sheet.getLastRowNum(), blockStartColIndex, blockStartColIndex + collen - 1);

+ // sheet.getLastRowNum()をblockEndRowIndexに変更
+ CellRangeAddress rangeAddress = new CellRangeAddress( blockStartRowIndex, blockEndRowIndex, blockStartColIndex, blockStartColIndex + collen - 1);

単純なパターンでしか試していないので、他に影響があるかもしれませんが、ご参考までに。


2014年3月13日木曜日 11時11分20秒 UTC+9 tksr...@gmail.com:
Reply all
Reply to author
Forward
0 new messages