2016-04-07 41 views
1

私は本当に巨大なレポートを生成するためにJXLSのPoiTransformerを使用しようとしています。問題は、私が今までに見つけたすべての例は、元の修正されていないテンプレートを含む2つのシートと実際の結果を含むもう1つのExcelファイルを生成することです。最初のシートをはがす方法はありますか?結果だけを保つ方法はありますか?JXLS + SXSSF - 実際に生成されたレポートと共にテンプレートを含めずにExcelファイルを生成するには?

これは私の現在のコードです:

 PoiContext context = new PoiContext(); 
     context.putVar("params", this.montaParametros(rel, filtro, opcoes, dados)); 
     context.putVar("dados", this.converteDados(rel, dados)); 

     Workbook template = WorkbookFactory.create(resource.getInputStream()); 
     PoiTransformer transformer = PoiTransformer.createSxssfTransformer(template, 5, false); 

     AreaBuilder areaBuilder = new XlsCommentAreaBuilder(transformer); 
     List<Area> xlsAreaList = areaBuilder.build(); 

     Area xlsArea = xlsAreaList.get(0); 
     // xlsArea.applyAt(new CellRef("Template!A1"), context); // Tried forcing it to use the original sheet as the output sheet, but it does not overwrite things properly 
     xlsArea.applyAt(new CellRef("Result!A1"), context); // Writes into a new sheet, but that's not what is desired 

     Workbook processado = transformer.getWorkbook(); 
     processado.write(out); 

答えて

2

さて、愚かな私に、私がちょうどディスクに書き込む前に、不要なシートを削除することができそうです。私はSXSSFが何らかの形でそれを妨げていると思っていましたが、うまくいくようです:

Workbook processado = transformer.getWorkbook(); 
    processado.removeSheetAt(0); 
    processado.write(out); 
関連する問題