2016-04-07 4 views
1

Gerçekten çok büyük bir rapor oluşturmak için JXLS PoiTransformer'u kullanmaya çalışıyorum; Sorun şu ki, şimdiye kadar bulduğum tüm örnekler, orijinal, değiştirilmemiş, şablon ve gerçek sonucu içeren bir diğeri içeren iki sayfa içeren bir excel dosyası oluşturur. İlk sayfayı yumuşatmanın bir yolu var mı?JXLS + SXSSF - Şablonu gerçek oluşturulmuş raporla birlikte eklemeden Excel dosyası nasıl oluşturulur?

Bu benim şimdiki kodudur:

 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); 

cevap

2

Tamam, aptal, ben sadece diske yazmadan önce istenmeyen sayfaları kaldırmak gibi görünüyor; SXSSF'in bir şekilde bunu engellediğini sanmıştım, ama sadece işe yaramış gibi görünüyor:

Workbook processado = transformer.getWorkbook(); 
    processado.removeSheetAt(0); 
    processado.write(out); 
İlgili konular