#region 通过word域去插入相应的数据
/// <summary>
/// 通过word域去进行指定位置替换数据
/// </summary>
public void WordHelpers() {
       string filepath = FileHelper.GetDateDir();
       FileHelper.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath("/Upload/" + filepath + ""));
       string pathsrc =System.Web.HttpContext.Current.Server.MapPath("~\\Content\\word.docx");//word文件路径
       string[] filedName = new string[] { "Test", "Text1" };//域名
       object[] values = new object[] {"2","2"};//相应数据
       Document dm = new Document(pathsrc);
       dm.MailMerge.Execute(filedName, values);
       dm.Save(System.Web.HttpContext.Current.Server.MapPath("~\\Upload\\" + filepath + "\\" + Guid.NewGuid() +".doc" + ""));
}
#endregion

  对于上面这种既有要循环展示的数据又有固定展示的数据  循环列添加《TableStart:List》   《TableEnd:List》 
 

    /// <summary>
/// 订单打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnPrint_Click(object sender, EventArgs e)
{
     string FilePath = FileHelper.GetDateDir();//根据时间得到目录名
     FileHelper.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath("/upload-file/order/Orders/"+ FilePath));//创建一个目录
     string OrderTemp = System.Web.HttpContext.Current.Server.MapPath("~\\upload-file\\detail\\order\\ScHt.docx");//获取模板
     Document dm = new Document(OrderTemp);
     string[] filedName = new string[] { "Buyer", "orderId", "ForderId",
     "TotalPirce", "BackPirce", "YfPirce", "Payment", "Delivery", "Receive", "CName" , "DateTime","ChPrice" };//对应的域名
     HttpCookie userName = Request.Cookies[Cookie.UserNameCookieName];
     Member member = new MemberBusiness().GetEntityByUserName(userName.Value);
     OrderBusiness orderBusiness = new OrderBusiness();
     Order ordermodel=orderBusiness.GetEntity(lOrderNo.Text);
     object[] values = new object[] { member.CusName,ordermodel.GroupOrderId,lOrderNo.Text,ordermodel.TotalMoney,ordermodel.DiscountMoney, (ordermodel.TotalMoney - ordermodel.Disco      untMoney).ToString(),
     lPaymentMethod.Text, lShoppingMethod.Text, lShoppingDate.Text, lReceiver.Text,ordermodel.CreateDate, MoneyConvertChinese.MoneyToChinese((ordermodel.TotalMoney - ordermodel.Dis      countMoney).ToString())};//相对应的值内容
     OrderItemBusiness orderItemBusiness = new OrderItemBusiness();
     string where = "order_id='" + lOrderNo.Text + "'";
     string fieldList = "afd_stkNo,product_id,price,quantity,total_money";
     DataTable table = orderItemBusiness.GetList(fieldList, "Id", false, 1, 20, where).Table;
     table.TableName = "List";//这边要注意的是datatable的名称一定要和域循环的名称相对应
     table.Columns.Add("ProName");
     com.eshop.www.BLL.ProductDetailBusiness bllProd = new ProductDetailBusiness();
     foreach (DataRow dr in table.Rows) {
     dr["ProName"]= bllProd.GetEntity(int.Parse(dr["product_id"].ToString())).ProductName;
     }      dm.MailMerge.ExecuteWithRegions(table);//datatable列名要和循环内的域名称保持一致
     dm.MailMerge.Execute(filedName, values);
     string url = System.Web.HttpContext.Current.Server.MapPath("~\\upload-file\\order\\Orders\\" + FilePath + "\\" + Guid.NewGuid() + ".doc");
     dm.Save(url);
     Response.Clear();
     Response.Buffer = true;
     Response.Charset = "utf-8";
     Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8));
     Response.ContentType = "application/octet-stream";
     Response.WriteFile(url);
     Response.Flush();
     Response.Close();
     Response.End();
     dm.Clone();      JavascriptHelper.Alert("打印成功!");
}
目前我只应用过这两种导出方式下面在添加一种方式只是简单测试一下

        public void WordHelpers(DataTable dt)
{
    string filepath = FileHelper.GetDateDir();
    FileHelper.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath("/Upload/" + filepath + ""));
    //创建字符输出流
    StreamWriter sw = new StreamWriter("~\\Upload\\" + filepath + "\\" + Guid.NewGuid() + ".doc" + "", true, System.Text.UnicodeEncoding.UTF8);
    //需要导出的内容
    string str = "";
    str += "<html><head><title>无标题文档</title></head><body>";
    str += "<div>部门表格</div>";
    str += "<table> <thead>";
    str += "<tr> <th>部门名称</th> <th> 添加时间 </th> <th> 介绍 </th> </tr>";
    str += " <tbody>";
    foreach (DataRow dr in dt.Rows)
    {
    str += "<tr>";
    str += "<td>" + dr[""] + "</td>";
    str += "</tr>";
    }
    str += " </tbody>";
    str += "</table></body></html>";
    //写入
    sw.Write(str);
    sw.Close();
    //Response.Clear();
    //Response.Buffer = true;
    //// this.EnableViewState = false;
    //Response.Charset = "utf-8";
    //Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
    //Response.ContentType = "application/octet-stream";
    //Response.WriteFile(dirpath + fileName);
    //Response.Flush();
    //Response.Close();
    //Response.End();
}

Aspose.Words关于域的应用的更多相关文章

  1. .net MVC使用Aspose.Words 获取文本域获取文档

    controller 1 using Aspose.Words; 2 using Aspose.Words.Saving; 3 using System.IO; 4 5 6 /// 7 /// 获取导 ...

  2. Aspose Word模板使用总结

    Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"< ...

  3. aspose输出表格

    利用aspose在word中输出表格 序号 姓名 性别  <<TableStart:T>><<Index>>  <<Name>> ...

  4. aspose.word使用简单方法

    概念介绍 使用aspose生成word报表步骤: 加载word模板 提供数据源 填充 加载模板 提供了4种重载方法 public Document(); public Document(Stream ...

  5. Aspose.word总结

    1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"<”和“>”就可以了,而是必须 ...

  6. Aspose.Words 总结

    生成答题卡 try { string tempPath = @"D:\moban\ttt.doc"; //Open document and create Documentbuil ...

  7. 关于ASPOSE.WORD使用上的一个小问题

    最近实习期间负责了公司某个项目的一个功能模块里面的word导出功能,使用的是ASPOSE.WORD类库,但是经常导出时候会遇到图中的问题,大概意思就是两个表格不能跨在一起,调试了好几次还是没发现具体的 ...

  8. Aspose.Words的Merge Field

    今天应客户要求,修改导出word模板.使用的是Aspose.Words插件.这个程序原是同事所写,且自己对Aspose不是很了解.在替换模板上花费了一些时间. 先来一张图:下图是原来的模板.现在要求删 ...

  9. Aspose.Words五 MergeField

    通过MegerField来循环,将数据保存到dataset的table中,dataset通过关联datarelation字段来指定主从表关系.模板中通过标签TableStart和TableEnd来框定 ...

随机推荐

  1. Python爬虫从入门到放弃(十)之 关于深度优先和广度优先

    网站的树结构 深度优先算法和实现 广度优先算法和实现 网站的树结构 通过伯乐在线网站为例子: 并且我们通过访问伯乐在线也是可以发现,我们从任何一个子页面其实都是可以返回到首页,所以当我们爬取页面的数据 ...

  2. 获取Java VM中当前运行的所有线程

    /** * 获取Java VM中当前运行的所有线程 * @return */ public static Thread[] findAllThreads() { ThreadGroup group = ...

  3. EntityFramework.Extended.Update.Ambiguous column name

    异常描述 c#代码 dbcontext.Table.Where(x => x.B > 0).Update( x => new Table() { A = x.B } )  抛出异常: ...

  4. Resetting Frame Animation

      最近在做个小项目的时候,需要用到帧动画.对应着某种状态,该动画可以停止和再次播放.我们知道,通过函数 someAnimObj.start() someAnimObj.stop() 可以很容易地实现 ...

  5. Nio经典工作方式

    public void selector() throws IOException { ByteBuffer buffer = ByteBuffer.allocate(1024); Selector ...

  6. Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码

    <Windows Azure Platform 系列文章目录> 我们在使用关系型数据的时候,有时候希望: - 管理员admin,可以查看到所有的数据 - 普通用户,某些敏感字段,比如信用卡 ...

  7. 使用 Live555 搭建流媒体服务器

    最近因为工作需要,需要搭建流媒体服务器,所以研究了一下,在此分享我的搭建过程. 搭建过程还是非常简单的! 搭建环境为Centos 7.2 64bit 一.安装gcc编译器 yum install gc ...

  8. spring整合axis2(最小配置化)的示例

    参考文档: http://blog.csdn.net/xinhaoluan/article/details/3605234 环境配置: spring-framework-3.2.7 axis2-1.6 ...

  9. (转载)提高系统OOP抽象以应对复杂的需求

    提高系统OOP抽象以应对复杂的需求, 转自:http://www.nowamagic.net/librarys/veda/detail/1373 有人问我如何构建一个比较好的类阶层次,如何使用面向对象 ...

  10. 【hibernate 初探】之 关系映射,ORM

    从整理上讲,一个ORM框架(以hibernate为例)所涉及内容无非就是,如何映射,如何检索,还有事务处理.所以从这三方面入手,基本上可以保证将hibernate可以用到自己的项目之中.所以我先说一下 ...