通过添加bookmark书签来添加数据,首先通过方法MoverToBookmark移动指定的标签位置,然后添加数据,添加完成后清除掉bookmark标示。
string templateFile = Server.MapPath("User_tmplt.doc"); string savePath = Server.MapPath("User.doc"); Aspose.Words.Document doc = new Aspose.Words.Document(templateFile); Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); //表数据 DataTable nameList = new DataTable(); nameList.Columns.Add("编号"); nameList.Columns.Add("姓名"); nameList.Columns.Add("时间"); DataRow row = null; for (int i = 0; i < 3; i++) { row = nameList.NewRow(); row["编号"] = i.ToString().PadLeft(4, '0'); row["姓名"] = "菜鸟程序员 " + i.ToString(); row["时间"] = DateTime.Now.ToString(); nameList.Rows.Add(row); } //获取表头的单元格的宽度 List<double> widthList = new List<double>(); for (int i = 0; i < nameList.Columns.Count; i++) { builder.MoveToCell(0, 0, i, 0); //移动单元格 double width = builder.CellFormat.Width;//获取单元格宽度 widthList.Add(width); } builder.MoveToBookmark("table"); //开始添加值 for (var i = 0; i < nameList.Rows.Count; i++) { for (var j = 0; j < nameList.Columns.Count; j++) { builder.InsertCell();// 添加一个单元格 builder.CellFormat.Borders.LineStyle = LineStyle.Single; builder.CellFormat.Borders.Color = System.Drawing.Color.Black; builder.CellFormat.Width = widthList[j]; builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//垂直居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 builder.Write(nameList.Rows[i][j].ToString()); } builder.EndRow(); } doc.Range.Bookmarks["table"].Text = ""; // 清掉标示 doc.Save(savePath);