前些时候在网上浏览网页时候无意发现了这个东西,该官方网站的介绍很吸引,出于好奇研究了下顺便给自己留个记号
首先在word中设置好模板信息 有这样《符号的为域标记 像UserName为书签
代码
1 //载入模板,并转换成文件元素
2 Document doc =new Document(templatePath);
3
4 //添加邮件合并事件
5 doc.MailMerge.MergeField +=new MergeFieldEventHandler(HandleMergeField);
6
7 //合并表格
8 DataSet ds =new DataSet();
9 ds.Tables.Add(dt);
10 ds.Tables.Add(dtOne);
11
12 //文件生成对象
13 mBuilder =new DocumentBuilder(doc);
14 //有一个标题行,不要颜色。
15 mRowIdx =1;
16
17 /*下面注释方法与合并表格操作效果一样*/
18 // doc.MailMerge.ExecuteWithRegions(dt);
19 // doc.MailMerge.ExecuteWithRegions(dtOne);
20
21 //添加数据源,并开始执行区域数据载入
22 doc.MailMerge.ExecuteWithRegions(ds);
23
24 //Bookmarks 为书签 一般如果简单的文字操作用书签
25 if (doc.Range.Bookmarks["UserName"] !=null)
26 {
27 Bookmark mark = doc.Range.Bookmarks["UserName"];
28 mark.Text ="小李子";
29 }
30 if (doc.Range.Bookmarks["DateTime"] !=null)
31 {
32 Bookmark mark = doc.Range.Bookmarks["DateTime"];
33 mark.Text = DateTime.Now.ToString("yyyy-MM-dd");
34 }
35 if (doc.Range.Bookmarks["Remark"] !=null)
36 {
37 Bookmark mark = doc.Range.Bookmarks["Remark"];
38 mark.Text ="测试一个超长文字测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试";
39 }
40 doc.Save("demo.doc", SaveFormat.Doc);
2 Document doc =new Document(templatePath);
3
4 //添加邮件合并事件
5 doc.MailMerge.MergeField +=new MergeFieldEventHandler(HandleMergeField);
6
7 //合并表格
8 DataSet ds =new DataSet();
9 ds.Tables.Add(dt);
10 ds.Tables.Add(dtOne);
11
12 //文件生成对象
13 mBuilder =new DocumentBuilder(doc);
14 //有一个标题行,不要颜色。
15 mRowIdx =1;
16
17 /*下面注释方法与合并表格操作效果一样*/
18 // doc.MailMerge.ExecuteWithRegions(dt);
19 // doc.MailMerge.ExecuteWithRegions(dtOne);
20
21 //添加数据源,并开始执行区域数据载入
22 doc.MailMerge.ExecuteWithRegions(ds);
23
24 //Bookmarks 为书签 一般如果简单的文字操作用书签
25 if (doc.Range.Bookmarks["UserName"] !=null)
26 {
27 Bookmark mark = doc.Range.Bookmarks["UserName"];
28 mark.Text ="小李子";
29 }
30 if (doc.Range.Bookmarks["DateTime"] !=null)
31 {
32 Bookmark mark = doc.Range.Bookmarks["DateTime"];
33 mark.Text = DateTime.Now.ToString("yyyy-MM-dd");
34 }
35 if (doc.Range.Bookmarks["Remark"] !=null)
36 {
37 Bookmark mark = doc.Range.Bookmarks["Remark"];
38 mark.Text ="测试一个超长文字测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试";
39 }
40 doc.Save("demo.doc", SaveFormat.Doc);
doc.MailMerge.MergeField += new MergeFieldEventHandler(HandleMergeField);这可要可不要 因为这里是用来做表格样式控制
其中给书签赋值的代码为参考网络资料!
最后出来的效果如下:
想要源码的可以留下email,好吧我将源码放上来吧,源码仅供学习使用,请勿用在商业用途!下载地址