[java,2017-05-04] 创建word文档

时间:2023-03-09 16:33:19
[java,2017-05-04] 创建word文档
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,输入域名(用于和代码中对应)

[java,2017-05-04] 创建word文档

[java,2017-05-04] 创建word文档

文档模板建好后效果如下:

[java,2017-05-04] 创建word文档

可以插入文字、表格和图片,这里没有显示插入图片的功能。

创建好模板后,执行代码,效果如下:

[java,2017-05-04] 创建word文档

这样,word文档就被创建成功了。