ireport word 大数据量

 


最近项目中遇到一个问题,就是ireport导出word,导出数据量打的时候,word的有20多M。打开word,就死机了;客户强烈要求导出word,不能到pdf,然后项目经理就叫我解决这个问题,差不多花了四天的时间,还是没搞出点眉目:怀疑导出word很大:原因有二:1:模板画的有问题,2:生成word的方法有问题,尝试把模板中的textfiled线用线条代替,生成word的大小是减少了,但数据量大,还是不行;到网上去下了个ireport-4.1.3,看见一个table控件,想让他代替ireport里detai里面的字段,但尝试了很长时间都没搞会这个控件,因为我的数据是从List中获取的,不太会配dataset的数据源,后来尝试直接连数据库,导出word来看发现,4500条左右的数据,word会有10多M,还是不行,因为后台导出word的时候,是

	public void exportDoc(List<JasperPrint> JasperPrints, String fileName, OutputStream os) throws JRException {
		
		JRAbstractExporter exporter = new JRRtfExporter();		
		exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, JasperPrints);
		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, fileName);
		exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, os);
		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);
		exporter.exportReport();
		
	}

生成的是RTF文件,RTF文件一般都是很大的,因为它是通用的文件格式

在新版的API上找到一个类:JRDocxExporter   这个生成docx文件只能用word2007及以上版本才能打开

JRAbstractExporter exporter = new JRDocxExporter();文件从20多M到只有100多K。

你可能感兴趣的:(数据库,list,Stream,String,dataset,rtf)