XLSTransformer生成excel文件详解编程语言

jxls的使用方法:

1)声明一个XLSTransformer对象,生成方式就是使用new操作符
                XLSTransformer transformer = new XLSTransformer();

2)得到Template的FIle:
                 String xlsTemplateFileName = this.getClass().getClassLoader().getResource(“template.xls”);

3)利用XLSTransformer的类的方法生成Excel文件
                  String xlsFileName = “D:”+File.separator+”resule.xls”;
                  Map map= new HashMap();
                  map .put(“news1”,”news1 “);
                  map .put(“news2″,”news2”);
                  transformer.transformXLS(xlsTemplateFileName , map, xlsFileName);

                  XLSTransformer类的transformXLS方法的定义如下:
                  public void transformXLS(String srcFilePath, Map  map , String destFilePath) throws ParsePropertyException,

                  IOException其中:srcFilePath:是Template文件的全文件名(包含路径)
                  map :需要传入Excel里面的一个Map,jxls根据Template里面的定义和Map里面的对象对Template进行解析,

                              将Map里面的对象值填入到Excel文件中
                  destFilePath:需要生成的Excel文件的全文件名(包含路径)

Struts.xml配置

<action name="reportTest" method="reportTest" 
			class="org.bkgd.tpmis.report.web.action.T"> 
			<result type="stream"> 
				<param name="contentType">application/octet-stream</param> 
				<param name="inputName">inputStream</param> 
				<param name="contentDisposition">attachment;filename="reportTest.xls"</param> 
				<param name="bufferSize">4096</param> 
			</result> 
		</action>

java代码

public class T { 
 
	private InputStream inputStream; 
 
	public String reportTest() { 
		try { 
			List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); 
			Map<String, Object> m1 = new HashMap<String,Object>(); 
			m1.put("PRONAME", "项目1"); 
			m1.put("PLANTYPE", "计划1"); 
			m1.put("PROTYPE", "类别1"); 
			Map<String, Object> m2 = new HashMap<String,Object>(); 
			m2.put("PRONAME", "项目2"); 
			m2.put("PLANTYPE", "计划2"); 
			m2.put("PROTYPE", "类别2"); 
			 
			list.add(m1); 
			list.add(m2); 
		 
			//------------------------开始报表 
			Map<String, Object> para = new HashMap<String, Object>(); 
			para.put("result", list); 
			XLSTransformer transformer = new XLSTransformer(); 
			Workbook wb; 
			try { 
				//模板路径 
				String classPath =  this.getClass().getClassLoader().getResource("report/resource/reportTest.xls").getPath(); 
				//真实导出路径 
				String classPath2 =  this.getClass().getClassLoader().getResource("report/temp/reportTest.xls").getPath(); 
				transformer.transformXLS(classPath, para,classPath2);  //在classPath2下生成excel文件 
				inputStream = new FileInputStream(new File(classPath2)); 
				wb = transformer.transformXLS(new FileInputStream(classPath),para);   //获得Workbook对象 
				 
				wb.write(new FileOutputStream(classPath2));  //导出Excel 
			} catch (Exception e) { 
				throw new ReportException(e); 
			} 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} 
		return "success"; 
	} 
 
	public InputStream getInputStream() { 
		return inputStream; 
	} 
 
	public void setInputStream(InputStream inputStream) { 
		this.inputStream = inputStream; 
	} 
}

reportTest.xls文件格式

XLSTransformer生成excel文件详解编程语言

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/14257.html

(0)
上一篇 2021年7月19日 16:44
下一篇 2021年7月19日 16:44

相关推荐

发表回复

登录后才能评论