您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > java生成word文件并
importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.io.Writer;importjava.net.URLEncoder;importjava.util.Map;importjavax.servlet.http.HttpServletResponse;importorg.apache.log4j.Logger;importfreemarker.template.Configuration;importfreemarker.template.Template;/***@Desc:word操作工具类*/publicclassWordUtil{privatestaticLoggerlog=Logger.getLogger(WordUtil.class);/***@Desc:生成word文件*@paramdataMapword中需要展示的动态数据,用map集合来保存*@paramtemplateNameword模板名称,例如:test.ftl*@paramfilePath文件生成的目标路径,例如:D:/wordFile/*@paramfileName生成的文件名称,例如:test.doc*/publicstaticvoidcreateWord(MapString,ObjectdataMap,StringtemplateName,StringfilePath,StringfileName){try{//创建配置实例Configurationconfiguration=newConfiguration();//设置编码configuration.setDefaultEncoding(UTF-8);//ftl模板文件Filefile=newFile(filePath);configuration.setDirectoryForTemplateLoading(file);//获取模板Templatetemplate=configuration.getTemplate(templateName);//输出文件FileoutFile=newFile(filePath+File.separator+fileName);//如果输出目标文件夹不存在,则创建if(!outFile.getParentFile().exists()){outFile.getParentFile().mkdirs();}//将模板和数据模型合并生成文件Writerout=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(outFile),UTF-8));//生成文件template.process(dataMap,out);//关闭流out.flush();out.close();}catch(Exceptione){log.error(生成word文档(WordUtil)出错:【msg:+e.getMessage()+】,文件名:+fileName);e.printStackTrace();}}/***文件下载*@parampath文件路径全路径,包含文件名*@paramresponse*@return*/publicstaticHttpServletResponsedownFile(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=newFile(path);//取得文件名。Stringfilename=file.getName();//以流的形式下载文件。InputStreamfis=newBufferedInputStream(newFileInputStream(file));byte[]buffer=newbyte[fis.available()];fis.read(buffer);fis.close();//清空responseresponse.reset();//设置response的HeaderStringfileName=URLEncoder.encode(filename,UTF-8);if(fileName.length()150){//解决IE6.0bugfileName=newString(filename.getBytes(GBK),ISO-8859-1);}response.addHeader(Content-Disposition,attachment;filename=+fileName);response.addHeader(Content-Length,+file.length());OutputStreamtoClient=newBufferedOutputStream(response.getOutputStream());response.setContentType(application/octet-stream);toClient.write(buffer);toClient.flush();toClient.close();file.delete();}catch(IOExceptione){log.error(下载文档(WordUtil)出错:【msg:+e.getMessage()+】);e.printStackTrace();}returnresponse;}}
本文标题:java生成word文件并
链接地址:https://www.777doc.com/doc-2881173 .html