将datatable导出为Excel或CSV文件

    技术2022-05-19  52

    Datatable导出CSV文件:

    DataTable dtList = new DataTable();

                T_Product t_pro = new T_Product();

     

            

        t_pro.DataConn = EC.Common.Base.ModelBase.DataBaseType.EC_Mall;

                dtList = B_Product.QueryDataToTable(t_pro, sqlWhere);

     

     

                if (dtList != null && dtList.Rows.Count > 0 && dtList.Rows.Count <= 3000)//不能大于3000条记录

                {

                    StringBuilder _sb = new StringBuilder();

                    int i = 0;

     

                    #region -- 表头 --

                    _sb.Append("商品名称,货号,商品编号,商品分类,品牌,重量,单位,备注,商品图片,免运费数量,免运费,配件,市场价,本店价格,"

                        + "描述,库存,发布时间,有效期,发货地,是否批发,发票,热销,保修,积分/n");

                    #endregion

     

                    //拼接字符串

                    foreach (DataRow dr in dtList.Rows)

                    {

                        _sb.Append(dr["C_ProductName"].ToString() + ","

                            + dr["C_ProductNO"].ToString() + ","

                            + dr["C_ProBianhao"].ToString() + ","

                            + dr["C_ClassID"].ToString() + ","

                            + dr["C_BrandID"].ToString() + ","

                            + dr["C_weight"].ToString() + ","

                            + dr["C_Unit"].ToString() + ","

                            + dr["C_UserRemark"].ToString() + ","

                            + dr["C_ImagePath"].ToString() + ","

                            + dr["C_FreeNum"].ToString() + ","

                            + dr["C_NoShippingPrice"].ToString() + ","

                            + dr["C_IsAloneSale"].ToString() + ","

                            + dr["C_PriceMarket"].ToString() + ","

                            + dr["C_ShopPrice"].ToString() + ","

                            + dr["C_Description"].ToString() + ","

                            + dr["C_Stocks"].ToString() + ","

                            + dr["C_StartDate"].ToString() + ","

                            + dr["C_EndDate"].ToString() + ","

                            + dr["C_AreaCode"].ToString() + ","

                            + dr["C_IsBatch"].ToString() + ","

                            + dr["C_Invoice"].ToString() + ","

                            + dr["C_IsHot"].ToString() + ","

                            + dr["C_Warranty"].ToString() + ","

                            + dr["C_JiFen"].ToString());

     

                        if (i < dtList.Rows.Count - 1)

                        {

                            _sb.Append("/n");

                        }

     

                        i++;

                    }

                    //输出Excel -- xls文件的制表符是"/t"而csv文件的制表符是"," --

                    Response.AddHeader("Content-Disposition", "attachment; filename=" + "3050_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv");

                    Response.ContentType = "application/ms-excel";

                    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

                    Response.Write(_sb.ToString());

                    Response.End();

    DataTable导出为Excel文件:

    DataTable dtList = new DataTable();            T_Product t_pro = new T_Product();            t_pro.DataConn = EC.Common.Base.ModelBase.DataBaseType.EC_Mall;            dtList = B_Product.QueryDataToTable(t_pro, sqlWhere);

                if (dtList != null && dtList.Rows.Count > 0)           {                StringBuilder _sb = new StringBuilder();                int i = 0;

                    #region -- 表头 --                _sb.Append("商品名称/t货号/t商品编号/t商品分类/t品牌/t重量/t单位/t备注/t商品图片/t免运费数量/t免运费/t配件/t市场价/t本店价格/t "                    + "描述/t库存/t发布时间/t有效期/t发货地/t是否批发/t发票/t热销/t保修/t积分/n");                #endregion

                    //拼接字符串                foreach (DataRow dr in dtList.Rows)                {                    _sb.Append(dr["C_ProductName"].ToString() + "/t"                        + dr["C_ProductNO"].ToString() + "/t"                        + dr["C_ProBianhao"].ToString() + "/t"                        + dr["C_ClassID"].ToString() + "/t"                        + dr["C_BrandID"].ToString() + "/t"                        + dr["C_weight"].ToString() + "/t"                        + dr["C_Unit"].ToString() + "/t"                        + dr["C_UserRemark"].ToString() + "/t"                        + dr["C_ImagePath"].ToString() + "/t"                        + dr["C_FreeNum"].ToString() + "/t"                        + dr["C_NoShippingPrice"].ToString() + "/t"                        + dr["C_IsAloneSale"].ToString() + "/t"                        + dr["C_PriceMarket"].ToString() + "/t"                        + dr["C_ShopPrice"].ToString() + "/t"                        + dr["C_Description"].ToString() + "/t"                        + dr["C_Stocks"].ToString() + "/t"                        + dr["C_StartDate"].ToString() + "/t"                        + dr["C_EndDate"].ToString() + "/t"                        + dr["C_AreaCode"].ToString() + "/t"                        + dr["C_IsBatch"].ToString() + "/t"                        + dr["C_Invoice"].ToString() + "/t"                        + dr["C_IsHot"].ToString() + "/t"                        + dr["C_Warranty"].ToString() + "/t"                        + dr["C_JiFen"].ToString());

                        if (i < dtList.Rows.Count - 1)                    {                        _sb.Append("/n");                    }

                        i++;                }                //输出Excel -- xls文件的制表符是"/t"而csv文件的制表符是"," --                Response.AddHeader("Content-Disposition", "attachment; filename=" + "3050_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");                Response.ContentType = "application/ms-excel";                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");                Response.Write(_sb.ToString());                Response.End();


    最新回复(0)