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; import org.apache.log4j.Logger;
importfreemarker.template.Configuration; importfreemarker.template.Template; /**
* @Desc£ºword²Ù×÷¹¤¾ßÀà */
public class WordUtil { private static Logger log = Logger.getLogger(WordUtil.class); /**
* @Desc£ºÉú³ÉwordÎļþ * @paramdataMap wordÖÐÐèҪչʾµÄ¶¯Ì¬Êý¾Ý£¬ÓÃmap¼¯ºÏÀ´±£´æ * @paramtemplateName wordÄ£°åÃû³Æ£¬ÀýÈ磺test.ftl * @paramfilePathÎļþÉú³ÉµÄÄ¿±ê·¾¶£¬ÀýÈ磺D:/wordFile/ * @paramfileNameÉú³ÉµÄÎļþÃû³Æ£¬ÀýÈ磺test.doc */ public static void createWord(Map
//´´½¨ÅäÖÃʵÀý
Configuration configuration = new Configuration();
//ÉèÖñàÂë
configuration.setDefaultEncoding(\
//ftlÄ£°åÎļþ
File file = new File(filePath); configuration.setDirectoryForTemplateLoading(file);
//»ñÈ¡Ä£°å
Template template = configuration.getTemplate(templateName);
//Êä³öÎļþ
File outFile = new File(filePath + File.separator + fileName);
//Èç¹ûÊä³öÄ¿±êÎļþ¼Ð²»´æÔÚ£¬Ôò´´½¨ if (!outFile.getParentFile().exists()){ outFile.getParentFile().mkdirs(); }
//½«Ä£°åºÍÊý¾ÝÄ£Ðͺϲ¢Éú³ÉÎļþ Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),\
//Éú³ÉÎļþ
template.process(dataMap, out);
//¹Ø±ÕÁ÷ out.flush(); out.close();
} catch (Exception e) {
log.error(\Éú³É wordÎĵµ(WordUtil)³ö´í£º¡¾msg£º\¡¿ ,ÎļþÃû£º\+ fileName);
e.printStackTrace(); } } /** * ÎļþÏÂÔØ * @param path Îļþ·¾¶È«Â·¾¶£¬°üº¬ÎļþÃû * @param response * @return */ public static HttpServletResponsedownFile(String path, HttpServletResponse response) { try { // pathÊÇÖ¸ÓûÏÂÔصÄÎļþµÄ·¾¶¡£ File file = new File(path); // È¡µÃÎļþÃû¡£ String filename = file.getName(); // ÒÔÁ÷µÄÐÎʽÏÂÔØÎļþ¡£ InputStreamfis = new BufferedInputStream(new FileInputStream(file)); byte[] buffer = new byte[fis.available()];
}
fis.read(buffer); fis.close();
// Çå¿Õresponse response.reset();
// ÉèÖÃresponseµÄHeader
String fileName = URLEncoder.encode(filename,\if(fileName.length()>150){ //½â¾öIE 6.0 bug fileName=new String(filename.getBytes(\ }
response.addHeader(\response.addHeader(\
OutputStreamtoClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType(\toClient.write(buffer); toClient.flush(); toClient.close();
file.delete();
} catch (IOException e) { log.error(\ÏÂÔØÎĵµ(WordUtil)³ö´í£º¡¾msg£º\¡¿ \e.printStackTrace(); }
return response; }