首先设置word模板,能够点击某个单元格插入书签数组
插入方法:鼠标点击word文件某处,而后 插入--书签 便可ui
//关键代码以下……………………code
string tmppath = Server.MapPath("~/Template.doc"); Document doc = new Document(tmppath); //载入模板 //使用书签 if (doc.Range.Bookmarks["mark"] != null) { //Bookmark mark = doc.Range.Bookmarks["mark"];//根据书签名称获取书签 //mark.Text = "sean"; } //不使用书签 经过移动单元格 来添加值 DocumentBuilder builder = new DocumentBuilder(doc); //设置单元格内容对齐方式 builder.ParagraphFormat.Alignment = ParagraphAlignment.Left; builder.MoveToCell(0, 2, 3,0); //tableIndex,rowIndex,columnIndex,characterIndex 初始索引0 builder.Write("chang"); doc.Save("demo.doc", SaveFormat.Doc, SaveType.OpenInWord, Response); //保存为doc,并打开 //doc.Save(HttpContext.Current.Server.MapPath(savePath), SaveFormat.Doc);//直接保存文件 //PS: 在实际使用过程当中发现若是表格都在word模板第一页的时候,咱们能够使用经过更改moveToCell方法第一个参数tableIndex来填写具体哪一个表,可是当模板有若干页时, 经过更改方法第一个参数值直接报错(超出表索引) 在网上找了半天,最终发现了一个算是很麻烦的方法:模板插入域(插入--文档部件--域--类别选择邮件合并点击MergeField输入名称),而后Aspose.Words提供一个方法: doc.MailMerge.Execute(string[]fieldNames,object[]values) 及把模板中的域名称以及数组对应数据分别组合一个数组,经过该方法能够把数据插入对应域上。这个方法 适用于模板中单元格相对比较少,若是太多的话模板维护起来很麻烦。