讲页面导出成word

首先 我的思路是给定一个和页面一样模板 然后将模板里需要填写的地方填写为一样的符号 如:XX,然后保存word为xml格式。加进项目里面来,然后通过获取xml节点,并给它赋值。

前台代码:

$.ajax({
                    type: "post",
                    url: "WeekWorkSummary.ashx",
                    data: "strXX=" + str,
                    success: function (msg) {
                        if (msg == "e") {
                            alert("导出失败,请检查填写信息是否正确,尽量不要输入“^”敏感字符。");
                        }
                        else {
                            window.location.href = 'UploadFiles/模板.doc';//成功之后下载文件
                        }
                    },
                    error: function () {
                        alert("导出失败,请检查填写信息是否正确,尽量不要输入“^”敏感字符。");
                    }
                });
后台代码:

             string str = "";//传来的数据
             string xmlName = "";//xml名称           
              xmlName = "Xml/wordM.xml";  
             str = context.Request.Params["strRpt"];
            XDocument xml = XDocument.Load(context.Server.MapPath(xmlName));//找到所在路径
            //找到"w:tbl"名称的节点(对应WORD中的表格),w是名称空间
            XNamespace nameSpace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
            //获取要替换的位置
            var query = from x in xml.Descendants(nameSpace + "t")
                        where x.Value == "XX"
                        select x;
           //判断接收的字符串是否符合要求。
            if (str.Split('^').Length == 4 || str.Split('^').Count() == 110)
            {
                //遍历数据并插入表格
                int i = 0;
                foreach (var a in query)
                {
                    a.Value = str.Split('^')[i];
                    i++;
                }               
//保存到word
                try
                {
                    context.Response.Write("");  
                    xml.Save(context.Server.MapPath("UploadFiles/模板.doc"));
                }
                catch (Exception ex)
                {
                    //提示重试
                    context.Response.Write("w");                   
                }
                finally
                {
                    context.Response.End();
                }



 不要忘记引用命名空间 using System.Xml.Linq;

也必须是 office word,wps不行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值