Aspose.Words关于域的应用

#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关于域的应用的更多相关文章
- .net MVC使用Aspose.Words 获取文本域获取文档
controller 1 using Aspose.Words; 2 using Aspose.Words.Saving; 3 using System.IO; 4 5 6 /// 7 /// 获取导 ...
- Aspose Word模板使用总结
Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据 新建一个Word文档,命名为Template.doc 注意:这里并不是输入"< ...
- aspose输出表格
利用aspose在word中输出表格 序号 姓名 性别 <<TableStart:T>><<Index>> <<Name>> ...
- aspose.word使用简单方法
概念介绍 使用aspose生成word报表步骤: 加载word模板 提供数据源 填充 加载模板 提供了4种重载方法 public Document(); public Document(Stream ...
- Aspose.word总结
1.创建word模版,使用MergeFeild绑定数据 新建一个Word文档,命名为Template.doc 注意:这里并不是输入"<”和“>”就可以了,而是必须 ...
- Aspose.Words 总结
生成答题卡 try { string tempPath = @"D:\moban\ttt.doc"; //Open document and create Documentbuil ...
- 关于ASPOSE.WORD使用上的一个小问题
最近实习期间负责了公司某个项目的一个功能模块里面的word导出功能,使用的是ASPOSE.WORD类库,但是经常导出时候会遇到图中的问题,大概意思就是两个表格不能跨在一起,调试了好几次还是没发现具体的 ...
- Aspose.Words的Merge Field
今天应客户要求,修改导出word模板.使用的是Aspose.Words插件.这个程序原是同事所写,且自己对Aspose不是很了解.在替换模板上花费了一些时间. 先来一张图:下图是原来的模板.现在要求删 ...
- Aspose.Words五 MergeField
通过MegerField来循环,将数据保存到dataset的table中,dataset通过关联datarelation字段来指定主从表关系.模板中通过标签TableStart和TableEnd来框定 ...
随机推荐
- 最全Oracle环境搭建之.NET程序员初遇Oracle
前言:如果你习惯了傻瓜式的一步步安装,那么Oracle和.NET搭配,绝对会让你头痛不已. 目前我不敢保证自己理解的Oracle理论部分100%正确,但环境安装过程一定可以收藏以备不时之需. 路这么长 ...
- phpstrom识别phalcon框架模板文件的配置
- 【Android Developers Training】 26. 在SQL数据库中保存数据
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- kbengine 常见问题汇总
Q: KBEngine是什么,能用来做什么?A: KBEngine是一个通用网络游戏服务器引擎,适合绝大多数中心拓扑结构的网络游戏,包括但不限于即时和回合制MMORPG.副本类.房间类.卡牌.棋牌等. ...
- tkinter模块常用参数(python3)
1.使用tkinter.Tk() 生成主窗口(root=tkinter.Tk()):root.title('标题名') 修改框体的名字,也可在创建时使用className参数来命名:root.r ...
- OpenCV探索之路(十八):使用imwrite调整保存的图片质量
近日在用opencv做一些图像处理的操作时,需要对一些高分辨率的图像进行保存.比如,在操作一个容量为230M的图像后,并对该图像保存为JPG格式后,发现图像容量变为80M了!针对这个问题,忙了大半天, ...
- js模块化/js模块加载器/js模块打包器
之前对这几个概念一直记得很模糊,也无法用自己的语言表达出来,今天看了大神的文章,尝试根据自己的理解总结一下,算是一篇读后感. 大神的文章:http://www.css88.com/archives/7 ...
- Struts 之 通配符 路径匹配 常量用法 配置默认值
Struts 框架学习 Action的开发的几种方式 方式1 : 继承ActionSupport 如果使用Struts校验功能,必须继承此类 方式2 : 实现Action接口 方式3 :不继承 ...
- DotNetCore跨平台~服务总线_事件总线的重新设计
理论闲话 之前在.netFramework平台用的好好的,可升级到.net core平台之后,由于不再需要二进制序列化,导致咱们的事件机制遇到了问题,之前大叔的事件一直是将处理程序序列化后进行存储的, ...
- JAVA高并发
一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...