java将html导出成word(利用的poi包导出)

//导出到word
	public void exportWord(ActionMapping actionMapping, ActionForm actionForm,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		DBTool tool = null ;
        try {   
        			/***
				查询数据库获得数据														**/
			ArrayList records = form.getRecords();
			if(null!=records&&0!=records.size()){
				//word内容
				String content="<html>";//拼接注意加上<html>
				for (int i = 0; i < records.size(); i++) {
					Record record =(Record) records.get(i);
					//从数据库中获得数据,将oracle中的clob数据类型转换成string类型
				    Method method = record.get("CONTENT").getClass().getMethod("getVendorObj",new Class[]{});
				    CLOB clob = (CLOB)method.invoke(record.get("CONTENT"));
				    String cx  = clob.getSubString((long) 1, (int) clob.length());
					String title= (String) record.get("TITLE");
					//html拼接出word内容
					content+="<div style=\"text-align: center\"><span style=\"font-size: 24px\"><span style=\"font-family: 黑体\">"     
							+title+"<br /> <br /> </span></span></div>";
					content+="<div style=\"text-align: left\"><span >"     
						+cx+"<br /> <br /> </span></span></div>";
					//插入分页符
					content+="<span lang=EN-US style='font-size:12.0pt;line-height:150%;mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'></span>";
					content+="<p class=MsoNormal style='line-height:150%'><span lang=EN-US style='font-size:12.0pt;line-height:150%'><o:p> </o:p></span></p>";

				} 
				content += "</html>";
	            byte b[] = content.getBytes();  
	            ByteArrayInputStream bais = new ByteArrayInputStream(b);  
	            POIFSFileSystem poifs = new POIFSFileSystem();  
	            DirectoryEntry directory = poifs.getRoot();  
	            DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);  
	            //输出文件
	            String name="导出知识";
	            response.reset();
				response.setHeader("Content-Disposition",
	                     "attachment;filename=" +
	                     new String( (name + ".doc").getBytes(),
	                                "iso-8859-1"));
				response.setContentType("application/msword");
				OutputStream ostream = response.getOutputStream(); 
				//输出到本地文件的话,new一个文件流
				//FileOutputStream ostream = new FileOutputStream(path+ fileName);  
	            poifs.writeFilesystem(ostream);  
	            bais.close();  
	            ostream.close(); 
			}
        } catch (IOException e) {  
            e.printStackTrace();  
      }  
	}
文章来源: http://www.itnose.net/detail/6040435.html
更多文章: http://www.itnose.net/type/1.html

 

你可能感兴趣的:(java)