转:数据用EXCEL导出避免特殊字符显示引起的乱码

  StringBuilder sql = new StringBuilder();
        sql.Append("select isnull(dbo.GetSaleOrderOrderSerial_BySaleOrderItemID(SaleOrderItemID),0) as SaleOrderSerial, * from VendorOrderInfo where " + GetQuery()" );
        DataTable dt = VcSale.DBUtility.DbHelperSQL.Query(sql.ToString()).Tables[0];
        StringBuilder sb = new StringBuilder();
        if (dt != null)
        {
            sb.Append("<tr><td>销售订单</td><td>收购单号</td><td>供应商帐号</td><td>游戏名</td><td>服务器名</td><td>实际交易量</td><td>单价</td><td>状态</td></tr>");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                sb.Append("<tr>");
                sb.Append("<td>&nbsp;" + dt.Rows[i]["SaleOrderSerial"].ToString() + "</td>");
                sb.Append("<td>&nbsp;" + dt.Rows[i]["OrderSerial"].ToString() + "</td>");
                sb.Append("<td>" + dt.Rows[i]["MailAccount"].ToString() + "</td>");
                sb.Append("<td>" + VcSale.Cache.Utility.GetGame((int)dt.Rows[i]["GameID"]).Name + "</td>");
                sb.Append("<td>&nbsp;" + VcSale.Cache.Utility.GetGameServer((int)dt.Rows[i]["ServerID"]).Name + "</td>");
                sb.Append("<td>" + dt.Rows[i]["Amount"].ToString() + "</td>");
                double price = double.Parse(dt.Rows[i]["RealPrice"].ToString());
                sb.Append("<td>" + string.Format("{0:¥0.0000}", price) + "</td>");
                sb.Append("<td>" + ((OrderType)(byte)dt.Rows[i]["Status"]).ToString() + "</td>");
                sb.Append("</tr>");
            }
        }
        Response.ContentType = "application/vnd.ms-excel";
        Response.Write("<table>" + sb.ToString() + "</table>");
        Response.End();

//数据用EXCEL导出时用&nbsp;可以避免特殊字符显示引起的乱码

posted @ 2009-02-06 10:07  Afeng28  阅读(385)  评论(0编辑  收藏  举报