在邮件合并时使用Aspose.Words生成多个文档的具体代码
2013-02-21 08:21
483 查看
使用文档处理控件Aspose.Words进行邮件合并操作一般情况下只会从数据源生成一个文件(例如创建发票或信件)。如果要产生多个文件就需要对邮件进行多次合并。那么问题是该如何将邮件进行多次合并呢?解决该问题需要做到以下几点:
1、循环数据表中的所有行
2、在邮件合并前载入(或复制)原始文档
3、执行邮件合并,保存文件
此过程中,在每个邮件合并前我们可以从一个文件或流中加载模板文件,但通常情况下,更为快速的方法是只加载一次文档,然后在每次邮件合并前从内存中复制。下面来看以下具体的C#代码:
1、循环数据表中的所有行
2、在邮件合并前载入(或复制)原始文档
3、执行邮件合并,保存文件
此过程中,在每个邮件合并前我们可以从一个文件或流中加载模板文件,但通常情况下,更为快速的方法是只加载一次文档,然后在每次邮件合并前从内存中复制。下面来看以下具体的C#代码:
using System; using System.Data; using System.Data.OleDb; using System.IO; using System.Reflection; using Aspose.Words; namespace MultipleDocsInMailMerge { class Program { public static void Main(string[] args) { //Sample infrastructure. string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar; string dataDir = new Uri(new Uri(exeDir), @"../../Data/").LocalPath; ProduceMultipleDocuments(dataDir, "TestFile.doc"); } public static void ProduceMultipleDocuments(string dataDir, string srcDoc) { // Open the database connection. string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dataDir + "Customers.mdb"; OleDbConnection conn = new OleDbConnection(connString); conn.Open(); try { // Get data from a database. OleDbCommand cmd = new OleDbCommand("SELECT * FROM Customers", conn); OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataTable data = new DataTable(); da.Fill(data); // Open the template document. Document doc = new Document(dataDir + srcDoc); int counter = 1; // Loop though all records in the data source. foreach (DataRow row in data.Rows) { // Clone the template instead of loading it from disk (for speed). Document dstDoc = (Document)doc.Clone(true); // Execute mail merge. dstDoc.MailMerge.Execute(row); // Save the document. dstDoc.Save(string.Format(dataDir + "TestFile Out {0}.doc", counter++)); } } finally { // Close the database. conn.Close(); } } } }
相关文章推荐
- Aspose.words合并文档、邮件合并功能
- aspose.words生成word文档(.dox、.docx等)时,生成目录后,目录中的页码和实际页码不对应,代码中更新域都没用
- 使用Word的Mail Merge(邮件合并)功能实现批文档\邮件\通知的生成
- 推荐.NET使用Aspose.Words动态生成word文档数据表格(附Aspose.Words for NET 6.5 破解版下载)
- 使用Aspose.Words生成文档
- word文档的生成、修改、渲染、打印,使用Aspose.Words
- Asp.net使用Aspose.Words 组件生成Word
- Aspose.Words操作word生成PDF文档
- 使用 Sandcastle 生成代码帮助文档
- 使用GhostDoc为代码生成注释文档
- 如何用Aspose.Words.dll把World文档生成图片
- 使用Aspose.Words设置word文档多倍行距
- 使用doxygen从c++代码中生成文档的方法学习 .
- .net中使用Sandcastle(类似java中的jdoc)生成代码帮助文档
- asp.net下用Aspose.Words for .NET动态生成word文档中的图片或水印的方法
- 使用PDFLib生成PDF文档,C代码实例--画图形
- 用Aspose.Words for .NET动态生成word文档中的数据表格
- 使用GhostDoc为代码生成注释文档
- Aspose.Words在word文档合并时如何控制列表编号
- Aspose.Words使用教程之插入文档元素(三)