项目总结!

项目总结:
1,自动增加序号 <%# Container.ItemIndex+1+(pageIndex-1)*PAGESIZE %>

Table导出到Excel时设置Excel单元格格式(文本、数字等)

1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数字:vnd.ms-excel.numberformat:#,##0.00
4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
这 些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添加 到对应的标签对(即闭合标签)即可。如<td></td>,给标签对<td></td>添加样 式,style="vnd.ms-excel.numberformat:@" 

如<td></td>, 给标签对<td></td>添加样式,如 下: <td style="vnd.ms-excel.numberformat:@">410522198402161 833</td> 

 


2.导出

#region 导出Excel

        protected void BtnExcel_Click(object sender, ImageClickEventArgs e)
        {
            string strTable = GetStringTable();
            if (strTable != null && strTable != "")
            {
                Response.Clear();
                Response.Charset = "GB2312";
                Response.ContentEncoding = System.Text.Encoding.UTF7;
                // 添加头信息,为"文件下载/另存为"对话框指定默认文件名
                Response.AddHeader("Content-Disposition", "attachment; filename=ReceiveCustomer.xls");
                // 添加头信息,指定文件大小,让浏览器能够显示下载进度
                //Response.AddHeader("Content-Length", strTable.Length.ToString());
                // 指定文件类型
                Response.ContentType = "application/ms-excel";
                // 把文件流发送到客户端
                Response.Write(strTable);
                // 停止页面的执行
                Response.End();
            }
        }

        /// <summary>
        /// 导出数据源
        /// </summary>
        /// <returns></returns>
        private string GetStringTable()
        {
            StringBuilder strTable = new StringBuilder();
            strTable.Append("<table><tr><td>");
            //添加表头
            strTable.Append("<table width=/"1000/" border=/"0/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/">");
            strTable.Append("<tr><td colspan=/"10/" class=/"big1/" align=/"center/">收客统计列表</td></tr></table>");
            //添加列头
            strTable.Append("<table width=/"1000px/" border=/"1/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/" bordercolor=/"#000000/">");
            strTable.Append("<tr><td width=/"50px/" align=/"center/">序号</td><td width=/"100px/" align=/"center/">团号</td>");
            strTable.Append("<td width=/"250px/" align=/"center/">线路名称</td><td width=/"250px/" align=/"center/">组团社</td><td width=/"250px/" align=/"center/">出团日期</td><td width=/"100px/" align=/"center/">价格</td>");
            strTable.Append("<td width=/"50px/" align=/"center/">人数</td><td width=/"100px/" align=/"center/">订单号</td><td width=/"100px/" align=/"center/">总金额</td>");

            startDate = Adpost.Common.Function.ValidatorValueManage.GetDateTimeNullable(Cal_StartDate.Text);
            endDate = Adpost.Common.Function.ValidatorValueManage.GetDateTimeNullable(Cal_EndDate.Text);
            if (!string.IsNullOrEmpty(txt_zuTuan.Value))
                agencyName = txt_zuTuan.Value.Trim();
            //获取数据源
            DataSet ds = bllTourOrder.GetSucessOrderList(agencyName, startDate, endDate, companyId, operatorId, isLookAll);

            if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                //转为DT
                DataTable dt = ds.Tables[0];
                if (dt != null)
                {
                    //循环
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        //开始组合数据行
                        strTable.Append("<tr>");
                        strTable.Append("<td align=/"center/">" + (i + 1) + "</td>");
                        //团号
                        if (dt.Rows[i]["SerialNumber"] != DBNull.Value)
                        {
                            strTable.Append("<td align=/"center/" style=/"vnd.ms-excel.numberformat:@/">" + dt.Rows[i]["SerialNumber"].ToString() + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/" style=/"vnd.ms-excel.numberformat:@/"></td>");
                        }
                        //线路名称
                        if (dt.Rows[i]["RouteName"] != DBNull.Value)
                        {
                            strTable.Append("<td align=/"center/">" + dt.Rows[i]["RouteName"].ToString() + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/"></td>");
                        }
                        //组团社
                        if (dt.Rows[i]["AgencyName"] != DBNull.Value)
                        {
                            strTable.Append("<td align=/"center/">" + dt.Rows[i]["AgencyName"].ToString() + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/"></td>");
                        }
                        //出团日期
                        if (dt.Rows[i]["LeaveDate"] != DBNull.Value)
                        {
                            strTable.Append("<td align=/"center/">" + DateTime.Parse(dt.Rows[i]["LeaveDate"].ToString()).ToString("yyyy-MM-dd") + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/"></td>");
                        }
                        //订单价格详细统计
                        if (dt.Rows[i]["detailXml"] != DBNull.Value)
                        {
                            IList<PriceAndCount> list = GetPriceDetailByXml(dt.Rows[i]["DetailXml"].ToString());
                            string listPrice = "";
                            string listCount = "";
                            foreach (var item in list)
                            {
                                listPrice += "¥" + item.Price + "<br/>";
                                listCount += item.Count + "<br/>";
                            }
                            //价格
                            strTable.Append("<td align=/"center/">" + listPrice + "</td>");
                            //人数
                            strTable.Append("<td align=/"center/">" + listCount + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/"></td>");
                            strTable.Append("<td align=/"center/"></td>");
                        }
                        //订单号
                        if (dt.Rows[i]["Id"] != DBNull.Value)
                        {
                            strTable.Append("<td align=/"center/">" + dt.Rows[i]["Id"].ToString() + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/"></td>");
                        }
                        //总金额
                        if (dt.Rows[i]["SumMoney"] != DBNull.Value)
                        {
                            strTable.Append("<td align=/"center/">" + dt.Rows[i]["SumMoney"].ToString() + "</td>");
                        }
                        else
                        {
                            strTable.Append("<td align=/"center/"></td>");
                        }
                        strTable.Append("</tr>");
                    }
                }
            }

            strTable.Append("</table>");
            strTable.Append("</td></tr></table>");
            //返回值
            return strTable.ToString();
        }


        /// <summary>
        /// 获取订单详细信息
        /// </summary>
        /// <param name="xml"></param>
        /// <returns></returns>
        private IList<PriceAndCount> GetPriceDetailByXml(string xml)
        {
            IList<PriceAndCount> items = new List<PriceAndCount>();

            if (!string.IsNullOrEmpty(xml))
            {
                XElement xRoot = XElement.Parse(xml);
                var xDetails = GetXElements(xRoot, "row");

                foreach (var xdetail in xDetails)
                {
                    items.Add(new PriceAndCount()
                    {
                        Count = GetXAttributeValue(xdetail, "PeopleNum"),
                        Price = GetXAttributeValue(xdetail, "PeoplePrice")
                    });
                }
            }

            return items;
        }


        #endregion 导出Execel



#region xml操作
        /// <summary>
        /// Get XElements
        /// </summary>
        /// <param name="xElement">parent xElement</param>
        /// <param name="xName">xName</param>
        /// <returns>XElements</returns>
        private IEnumerable<XElement> GetXElements(XElement xElement, string xName)
        {
            var x = xElement.Elements(xName);
            if (x == null)
                return new List<XElement>();

            return x;
        }

        /// <summary>
        /// Get XAttribute Value
        /// </summary>
        /// <param name="xElement">XElement</param>
        /// <param name="attributeName">Attribute Name</param>
        /// <returns></returns>
        private string GetXAttributeValue(XElement xElement, string attributeName)
        {
            return GetXAttributeValue(xElement.Attribute(attributeName));
        }

        /// <summary>
        /// Get XAttribute Value
        /// </summary>
        /// <param name="XAttribute">xAttribute</param>
        /// <returns>Value</returns>
        private string GetXAttributeValue(XAttribute xAttribute)
        {
            if (xAttribute == null)
                return string.Empty;

            return xAttribute.Value;
        }

        #endregion

3.打印操作

<script type="text/javascript">
        function PrintPage() {
            //打印
            if (window.print != null) {
                $(document.forms[0]).children().each(function() {
                    if (($(this).attr("id") != "divprint"))
                        $(this).hide();
                });
                window.print();
            } else {
                alert('没有安装打印机');
            }
            //还原页面内容
            //还原页面内容
            window.setTimeout(function() {
                $(document.forms[0]).children().each(function() {
                    $(this).removeAttr("style");
                    $("#orderMessage").hide();
                });
            }, 1000);
        }
       
    </script>


4.回发到服务段以后,服务端再进行重新请求Response.Redirect(Request.ServerVariables["SCRIPT_NAME"].ToString() + "?StartDate=" + Server.UrlEncode(strStartDate) + "&EndDate=" + Server.UrlEncode(endDate) + "&AgencyName=" + Server.UrlEncode(strAgencyName));(有些变态)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值