.NET导出报表汇总(一):
    DATASET导出报表,优点:使用方便,代码简单,缺点:不用为报表设置样式
1、DATASET导出报表
 protected void Button1_Click(object sender, EventArgs e)
        {
            // 文件名字定义
            string fileName = string.Empty;
            // 取得导入的Excel数据定义
            System.Data.DataTable dtExcelData = null;
            // 文件名字的生成
            string topic = drpTopic.SelectedIndex > 0 ? drpTopic.SelectedItem.Text : "";
            fileName = topic + DateTimePicker1.Text + "到" + DateTimePicker2.Text + "文章访问统计数据_" + System.DateTime.Now.ToString().Replace("/", "_").Substring(0, 10);
            string filePath = Server.MapPath("..\\ExcelData\\") + fileName;
            try
            {
                dtExcelData = GetData();
                // 数据有无判断
                if (dtExcelData == null || dtExcelData.Rows.Count == 0)
                {
                    return;
                }
                string directoryPath = filePath;
                if (Directory.Exists(directoryPath))
                {//do nothing 
                }
                else
                {
                    Directory.CreateDirectory(directoryPath);
                }
                HttpResponse resp;
                resp = System.Web.HttpContext.Current.Response;
                resp.Clear();
                resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                resp.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName) + ".xls");
                string colHeaders = "", ls_item = "";
                int i = 0;
                DataRow[] myRow = null;
                if (0 < dtExcelData.Rows.Count)
                {
                    myRow = dtExcelData.Select("");
                }
                for (i = 0; i < dtExcelData.Columns.Count; i++)
                {
                    colHeaders += dtExcelData.Columns[i].Caption.ToString() + "\t";
                }
                colHeaders += "\n";
                resp.Write(colHeaders);
                // Excel的数据部分生成
                foreach (DataRow row in myRow)
                {
                    ls_item = "";
                    for (i = 0; i < row.Table.Columns.Count; i++)
                    {
                        ls_item += row[i].ToString().Replace("\r", "").Replace("\n", "") + "\t";
                    }
                    ls_item += "\n";
                    resp.Write(ls_item);
                }
File.Delete(fileName + ".xls");
                resp.End();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
2、DATASET导出报表
    protected void btnExport_Click(object sender, EventArgs e)
    {
        string excel_Year = ddl1.SelectedItem.Value;
        string excel_Month = ddl2.SelectedItem.Value;
        string strExcel_CanalId = ddlCanal.SelectedItem.Value;
        int excel_CanalId = -1;
        if (string.IsNullOrEmpty(excel_Year))
        {
            Jss.WindowAlert(this.Page, "导出数据失败!", false);
            return;
        }
        else if (string.IsNullOrEmpty(excel_Month))
        {
            Jss.WindowAlert(this.Page, "导出数据失败!", false);
            return;
        }
        else if (!int.TryParse(strExcel_CanalId, out excel_CanalId))
        {
            Jss.WindowAlert(this.Page, "导出数据失败!", false);
            return;
        }
        DataSet ds = new DataSet();
        System.Data.DataTable dtExcelData = new DataTable();
        DataTable tsolved = new DataTable();   //最终数据的载体。
        ds = dalRT.GetDataSet(excel_Year, excel_Month, excel_CanalId);
        if (ds == null)
        {
            Jss.WindowAlert(this, "当前没有可以导出的数据!", false);
            return;
        }
        tsolved = ds.Tables[0];
        dtExcelData.Columns.Add("序号");
        dtExcelData.Columns.Add("组别");
        dtExcelData.Columns.Add("网络渠道");
        dtExcelData.Columns.Add("套餐版本");
        dtExcelData.Columns.Add("端口单价");
        dtExcelData.Columns.Add("使用人");
        dtExcelData.Columns.Add("分行电话");
        dtExcelData.Columns.Add("开通人手机号");
        dtExcelData.Columns.Add("端口用户名");
        dtExcelData.Columns.Add("开通方式");
        dtExcelData.Columns.Add("备注");
        if (tsolved.Rows.Count > 0)
        {
            for (int i = 0; i < tsolved.Rows.Count; i++)
            {
                DataRow dr = dtExcelData.NewRow();
                dr[0] = tsolved.Rows[i]["Id"];
                dr[1] = tsolved.Rows[i]["Groups"];
                dr[2] = tsolved.Rows[i]["Canal_Name"];
                dr[3] = tsolved.Rows[i]["Product_Name"];
                dr[4] = tsolved.Rows[i]["Port_Price"];
                dr[5] = tsolved.Rows[i]["Staff_Name"];
                dr[6] = tsolved.Rows[i]["Groups_TelPhone_Number"];
                dr[7] = tsolved.Rows[i]["Mobile_Number"];
                dr[8] = tsolved.Rows[i]["Port_UserName"];
                dr[9] = tsolved.Rows[i]["Status"];
                dr[10] = tsolved.Rows[i]["Notes"];
                dtExcelData.Rows.Add(dr);
            }
        }
        else
        {
            Jss.WindowAlert(this, "当前没有可以导出的数据!", false);
            return;
        }
        // 文件名字定义
        string fileName = string.Empty;
        // 文件名字的生成
        fileName = System.DateTime.Now.ToString().Replace("/", "_").Substring(0, 7)+"_网站表";
        string filePath = Server.MapPath("ExcelData\\") + fileName;
        try
        {
            // 数据有无判断
            if (dtExcelData == null || dtExcelData.Rows.Count == 0)
            {
                return;
            }
            string directoryPath = filePath;
            if (Directory.Exists(directoryPath))
            {//do nothing 
            }
            else
            {
                Directory.CreateDirectory(directoryPath);
            }
            HttpResponse resp;
            resp = System.Web.HttpContext.Current.Response;
            resp.Clear();
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName) + ".xls");
            string colHeaders = "", ls_item = "";
            int i = 0;
            DataRow[] myRow = null;
            // 
            if (0 < dtExcelData.Rows.Count)
            {
                myRow = dtExcelData.Select("");
            }
            for (i = 0; i < dtExcelData.Columns.Count; i++)
            {
                colHeaders += dtExcelData.Columns[i].Caption.ToString() + "\t";
            }
            colHeaders += "\n";
            resp.Write(colHeaders);
            // Excel的数据部分生成
            foreach (DataRow row in myRow)
            {
                ls_item = "";
                for (i = 0; i < row.Table.Columns.Count; i++)
                {
                    ls_item += row[i].ToString().Replace("\r", "").Replace("\n", "") + "\t";
                }
                ls_item += "\n";
                resp.Write(ls_item);
            }
File.Delete(fileName + ".xls");
            resp.End();
        }
        catch (Exception ex)
        {
            throw ex;
        }
}
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号