出力シートを非表示にすることができますか。

597 views
Skip to first unread message

taoyan...@gmail.com

unread,
Sep 14, 2015, 1:37:07 AM9/14/15
to excella
初めまして、excellaの初心者です。

EXCELファイル出力してて、見せたくないシートを非表示にしたいですが、いろいろ調べたですが、どう実現するのかわかりません、教えていただけないでしょうか。

seki

unread,
Sep 17, 2015, 12:28:03 AM9/17/15
to excella, taoyan...@gmail.com
関です。

私も ExCella Reports を使っていて、たまにシートを非表示にしたいケースがありましたので、参考までに実装方法をお知らせします。

方法としては、カスタムReportProcessListenerを作成するのが分かりやすいと思います。
以下、サンプルのクラスです。

public class CustomReportProcessListener implements ReportProcessListener {

   
@Override
   
public void postBookParse(Workbook workbook, ReportBook reportBook) {
       
// 1番目のシートを非表示
        workbook
.setSheetHidden(0, true);
       
// 2番目のシートを選択・アクティブに設定
        workbook
.getSheetAt(1).setSelected(true);
        workbook
.setActiveSheet(1);
        workbook
.setFirstVisibleTab(1);
   
}

   
@Override
   
public void preBookParse(Workbook workbook, ReportBook reportBook) {
   
}

   
@Override
   
public void postParse(Sheet sheet, SheetParser sheetParser, SheetData sheetData)
           
throws ParseException {
   
}

   
@Override
   
public void preParse(Sheet sheet, SheetParser sheetParser) throws ParseException {
   
}

}

後はシートを非表示にしたい時に、上記のクラスをReportProcessorに追加すればOKです。

processor.addReportProcessListener(new CustomReportProcessListener());

非表示にするシートが可変の場合は、シートのインデックスをパラメータで渡せるようにリスナークラスを作成すれば良いです。

2015年9月14日月曜日 14時37分07秒 UTC+9 taoyan...@gmail.com:
Reply all
Reply to author
Forward
0 new messages