package test; import java.text.SimpleDateFormat; import java.util.Date; import com.aspose.words.DataColumnCollection; import com.aspose.words.DataRow; import com.aspose.words.DataTable; import com.aspose.words.Document; import com.aspose.words.License; import com.aspose.words.MailMerge; public class CreateWord { public static void main(String[] args) { String tPath = "e:/a.doc"; String path = "e:/muban.doc"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date=sdf.format(new Date()); DataTable table=new DataTable("table"); DataColumnCollection dcc = table.getColumns(); dcc.add("col0"); //0 序号 dcc.add("col1"); //列1 dcc.add("col2"); //列2 dcc.add("col3"); //列3 for(int i=0;i<3;i++){ DataRow row = table.newRow(); //新增一行 row.set(0, i+1); //序号 row.set(1, "行"+(i+1)+"列1"); //列1 row.set(2, "行"+(i+1)+"列2"); //列2 row.set(3, "行"+(i+1)+"列3"); //列3 table.getRows().add( row ); //加入此行数据 } //模板文件和将要创建的新文件 String template = path; //可以是doc或docx String destdoc = tPath; //可以是doc或docx Document doc; try{ //第一步 加载授权文件 License license = new License(); license.setLicense( "e:/lic.xml" ); System.out.println("授权成功"); System.out.println("Start create Word..."); //第二步 读取word模板文件,可以是.doc或者.docx doc = new Document( template ); //合并模版,相当于页面的渲染 MailMerge mm = doc.getMailMerge(); mm.executeWithRegions( table ); //调用接口 //提供数据源 String[] ks = {"date","content"}; Object[] vs = {date,"hello,word"}; mm.execute(ks, vs); doc.save( destdoc ); System.out.println("End create Word..."); }catch (Exception e) { e.printStackTrace(); } } }
java创建word文档,首先要有文档模板。
创建一个普通的word文档后,插入域,选择mergeField,输入域名(用于和代码中对应)
文档模板建好后效果如下:
可以插入文字、表格和图片,这里没有显示插入图片的功能。
创建好模板后,执行代码,效果如下:
这样,word文档就被创建成功了。