Aspose Word模板使用总结

1.创建word模版, 使用MergeFeild 绑定数据
    新建一个Word文档,命名为Template.doc
    注意:这里并不是输入"《”和“》”就可以了,而是必须在菜单的"插入→文档部件→域”找到MergeField并输入相应的域名
2.使用数组提供数据源
 string tempPath = Server.MapPath("~/Docs/Temp/Template.doc");
 string outputPath = Server.MapPath("~/Docs/Output/Template.doc");
 //载入模板
 var doc = new Document(tempPath);
 //提供数据源
 String[] fieldNames = new String[] {"UserName", "Gender", "BirthDay", "Address"};
 Object[] fieldValues = new Object[] {"张三", "男", "1988-09-02", "陕西咸阳"};
 //合并模版,相当于页面的渲染
 doc.MailMerge.Execute(fieldNames, fieldValues);
 //保存合并后的文档
 doc.Save(outputPath);
  //在WebForm中,保存文档到流中,使用Response. BinaryWrite 输出该文件
   var docStream = new MemoryStream();
  doc.Save(docStream, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
  Response.ContentType = " application/msword ";
  Response.AddHeader("content-disposition", "attachment;  filename= Template.doc ");
  Response.BinaryWrite( docStream.ToArray() );
  Response.End();
 //在MVC中采用,保存文档到流中,使用base.File输出该文件
  var docStream = new MemoryStream();
  doc.Save(docStream, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
  return base.File(docStream.ToArray(), "application/msword","Template.doc");
3. 创建循环数据的模版,这里的循环数据类似页面的for结构,不拘泥于形式table

   «TableStart:UserList»

   姓名:«UserName»

   «TableEnd:UserList»

   

4.使用DataTable提供数据源

//创建名称为UserList的DataTable

DataTable table=new DataTable("UserList");

table.Columns.Add("UserName");

table.Columns.Add("Gender");

table.Columns.Add("BirthDay");

table.Columns.Add("Address");

//----------------------------------------------------------------------------------------------------

//载入模板

 var doc = new Document(tempPath);
 //提供数据源
 var datatable= GetDataTable();
 //合并模版,相当于页面的渲染
  doc.MailMerge.ExecuteWithRegions( datatable );
  var docStream = new MemoryStream();
 doc.Save(docStream, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
 return base.File(docStream.ToArray(), "application/msword","Template.doc");
 
 5.绑定带有子循环数据模版
6.使用DataSet提供数据源
//用户表结构
 DataTable table = new DataTable("UserList");
 table.Columns.Add(new DataColumn("Id", typeof(int)));
 table.Columns.Add("UserName");
 table.Columns.Add("Gender");
 table.Columns.Add("BirthDay");
 table.Columns.Add("Address");
//分数表结构
 DataTable table = new DataTable("ScoreList");
 table.Columns.Add(new DataColumn("UserId", typeof(int)));
 table.Columns.Add("Name");
 table.Columns.Add("Score");
//----------------------------------------------------------------------------------------------------
//载入模板
 var doc = new Document(tempPath);
 //提供数据源
 DataSet dataSet = new DataSet();
 var userTable= GetUserDataTable();
 var userScoreTable= GetUserScoreDataTable();
 dataSet.Tables.Add(userTable);
 dataSet.Tables.Add(userScoreTable);
 dataSet.Relations.Add(new DataRelation("ScoreListForUser",userTable.Columns["Id"], userScoreTable.Columns["UserId"]));
 //合并模版,相当于页面的渲染
  doc.MailMerge.ExecuteWithRegions( dataSet );
  var docStream = new MemoryStream();
 doc.Save(docStream, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
 return base.File(docStream.ToArray(), "application/msword","Template.doc");
7.模版上使用书签,插入标记位置
选中文档中的文字,在菜单的"插入→书签”指定书签的名称,排序依据选定为位置,添加一个新书签。选中的文字为书签的Text属性,这里是为了方便查看。也可以直接插入一个书签并 指定位置,只是不明显。
8.在书签位置插入另一个文档的内容
//载入模板
 var doc = new Document(tempPath);
 var doc1 = new Document(tempPath1);//新文档
//找到名称为PositionFlag的书签
 var bookmark= doc.Range.Bookmarks["PositionFlag"];
//清空书签的文本
 bookmark.Text = "";
//使用DocumentBuilder对象插入一些文档对象,如插入书签,插入文本框,插入复选框,插入一个段落,插入空白页,追加或另一个word文件的内容等。
 var builder = new DocumentBuilder(doc);
//定位到指定位置进行插入操作
 builder.MoveToBookmark("PositionFlag");
//在PositionFlag书签对应的位置,插入另一个文档的内容。
 InsertDocument(bookmark.BookmarkStart.ParentNode, doc1);

转载于:https://www.cnblogs.com/birchlee/archive/2013/05/23/3094632.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. NTE通过word模板使用Asposeword将datagridview复选框选中行进行数据动态导出Word的详细步骤如下: Step 1:创建Word模板 首先,需要在Word中创建一个带有表格的模板,表格中包含需要导出的数据列。 Step 2:安装Aspose.Words 使用Aspose.Words进行Word文档操作,需要先安装Aspose.Words。 Step 3:在代码中创建Word文档对象 在代码中创建一个Aspose.Words.Document对象。 Step 4:获取模板中的表格 使用Aspose.Words.Document对象的GetChildNodes方法获取模板中的表格。 Step 5:获取datagridview中选中的行数据 使用datagridview.SelectedRows属性获取选中的行数据。 Step 6:将选中的行数据填充到表格中 使用Aspose.Words.Table对象的Rows属性和Cells属性,将选中的行数据填充到表格中。 Step 7:保存Word文档 使用Aspose.Words.Document对象的Save方法保存Word文档。 2. 过word模板使用Asposeword将datagridview复选框选中行导入word的步骤如下: Step 1:创建Word模板 首先,需要在Word中创建一个带有表格的模板,表格中包含需要导入数据的列。 Step 2:安装Aspose.Words 使用Aspose.Words进行Word文档操作,需要先安装Aspose.Words。 Step 3:在代码中创建Word文档对象 在代码中创建一个Aspose.Words.Document对象。 Step 4:获取模板中的表格 使用Aspose.Words.Document对象的GetChildNodes方法获取模板中的表格。 Step 5:获取datagridview中选中的行数据 使用datagridview.SelectedRows属性获取选中的行数据。 Step 6:将选中的行数据填充到表格中 使用Aspose.Words.Table对象的Rows属性和Cells属性,将选中的行数据填充到表格中。 Step 7:保存Word文档 使用Aspose.Words.Document对象的Save方法保存Word文档。 3. 将datagridview导入word的步骤如下: Step 1:安装Aspose.Words 使用Aspose.Words进行Word文档操作,需要先安装Aspose.Words。 Step 2:在代码中创建Word文档对象 在代码中创建一个Aspose.Words.Document对象。 Step 3:创建表格 使用Aspose.Words.Table对象创建需要导入数据的表格。 Step 4:获取datagridview中的数据 使用datagridview.Rows属性获取datagridview中的数据。 Step 5:将datagridview中的数据填充到表格中 使用Aspose.Words.Table对象的Rows属性和Cells属性,将datagridview中的数据填充到表格中。 Step 6:保存Word文档 使用Aspose.Words.Document对象的Save方法保存Word文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值