实现代码:
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
System.Web.HttpContext.Current.Response.Write("<head>");
//处理中文乱码
System.Web.HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");
System.Web.HttpContext.Current.Response.Write("<!--[if gte mso 9]><xml>");
System.Web.HttpContext.Current.Response.Write("<x:ExcelWorkbook>");
System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheets>");
System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheet>");
System.Web.HttpContext.Current.Response.Write("<x:Name>sheet1</x:Name>");
System.Web.HttpContext.Current.Response.Write("<x:WorksheetOptions>");
System.Web.HttpContext.Current.Response.Write("<x:Print>");
System.Web.HttpContext.Current.Response.Write("<x:ValidPrinterInfo/>");
System.Web.HttpContext.Current.Response.Write("</x:Print>");
System.Web.HttpContext.Current.Response.Write("</x:WorksheetOptions>");
System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheet>");
System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheets>");
System.Web.HttpContext.Current.Response.Write("</x:ExcelWorkbook>");
System.Web.HttpContext.Current.Response.Write("</xml>");
System.Web.HttpContext.Current.Response.Write("<![endif]--> ");
//模版路径
string tmppath = Server.MapPath("/xlsTemplate/" + path);
Document doc = new Document(tmppath);
doc.MailMerge.ExecuteWithRegions(table);
doc.Save(Page.Response, "文档名.doc", ContentDisposition.Attachment, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
1.创建word模版,模版中插入邮件合并域(插入-文档部件-域(类别为邮件合并,域名选择MergeField,域属性为数据源字段名))。开始和结束域分别为TableStart:表名,TableEnd:表名。可以同事绑定多个表中的数据。
2.需要用引用Aspose组件(Aspose.Words.dll)