The project needs to use Java program to generate DOC file, Baidu, Freemarker evaluation is relatively high, Freemarker is a Java language written template engine, it is based on the template to generate text output, for more information about Freemarker please ask Baidu .....
This blog post is mainly about the pits that you encounter when using online examples. The draft does not forget to dig well people, or to thank the sharing technology predecessors;
Original link:
http://www.360doc.com/content/13/0731/10/13247663_303740756.shtml [Blogger Blog is very beautiful, praise a]
Referenced example Links:
1.http://www.360doc.com/content/13/0731/10/13247663_303740756.shtml
2.http://blog.csdn.net/zhanwentao2/article/details/7255432
Freemarker.jar:
1.http://download.csdn.net/detail/pc159321/7077059
2.http://download.csdn.net/detail/zhaoshe/3153176
The main ideas are as follows:
1.word It adjusts the layout, including the dynamic parts you want to generate, as well as some regular text that you don't need to generate:
2. Save the Word document as XML;
3. Open with Firstobject free XML Edito, marking the fields you need to dynamically generate, ${} so you can;
Freemarker also supports the need for rich tagging, which can be implemented if you want to show more complex and rich content;
Firstobject free XML edito friendly download Link:
Http://www.cnblogs.com/know-life-death/archive/2012/02/01/2334742.html
4. Change the XML file to a suffix named. FTL, and then refer to your project;
Issues to be aware of:
A. The word version cannot be less than 2003, because 2003 only starts supporting XML;
B. When opening an XML file to be edited with Firstobject free XML Edito, remember that XML is not placed in a directory that contains Chinese paths "the editor will not respond, and then you know ...";
The implementation code is as follows:
1 ImportJava.io.BufferedWriter;2 ImportJava.io.File;3 ImportJava.io.FileOutputStream;4 ImportJava.io.OutputStreamWriter;5 ImportJava.io.Writer;6 Importjava.sql.Connection;7 ImportJava.sql.ResultSet;8 ImportJava.util.HashMap;9 ImportJava.util.Map;Ten One ImportCn.sina.ttjava_13.database. DB; A Importfreemarker.template.Configuration; - Importfreemarker.template.Template; - the Public classWordtest { - - PrivateConfiguration Configuration =NULL; - PrivateConnection Conn; + PrivateResultSet Res; - + Publicwordtest () { AConfiguration =NewConfiguration (); atConfiguration.setdefaultencoding ("UTF-8"); - } - - Public voidCreateword () { -map<string, object> DataMap =NewHashmap<string, object>(); - Try { inString selectsql = "Select Id,name,normalprice,memberprice from t_product WHERE 1 LIMIT 10"; -conn =db.getconn (); tores =DB.GETRS (conn, selectsql); + while(Res.next ()) { -Datamap.put ("id", res.getstring ("id")). Trim ()); theDatamap.put ("Name", Res.getstring ("name")). Trim ()); *Datamap.put ("Normalprice", Res.getstring ("Normalprice"). Trim ()); $Datamap.put ("Memberprice", Res.getstring ("Memberprice"). Trim ());Panax Notoginseng -Configuration.setclassfortemplateloading ( This. GetClass (), "/template");//where the FTL file exists theTemplate template = Configuration.gettemplate ("PRODUCT.FTL"); + AFile OutFile =NewFile ("d:/temp/" + res.getstring ("name"). Trim (). ReplaceAll ("/", "") + ". Doc"); theWriter out =NewBufferedWriter (NewOutputStreamWriter (NewFileOutputStream (OutFile), "UTF-8")); + template.process (DataMap, out); - out.close (); $ } $ Db.close (res); - Db.close (conn); -}Catch(Exception e) { the e.printstacktrace (); - }Wuyi } the - Public Static voidMain (string[] args) { WuWordtest test =Newwordtest (); - Test.createword (); About } $}
Java dynamically generates complex. doc files