Example #1
0
        public void RedirectExport()
        {
            string json = string.Empty;
            StringBuilder sb = new StringBuilder();
            string jsonStr = String.Empty;
            try
            {
                _redirectMgr = new RedirectMgr(mySqlConnectionString);
                RedirectQuery query = new RedirectQuery();
                DataTable dt = new DataTable();
                if (!string.IsNullOrEmpty(Request.Params["group_id"]))
                {
                    query.group_id = uint.Parse(Request.Params["group_id"]);
                }
                dt = _redirectMgr.GetRedirectListCSV(query);
                DataTable dtCsv = new DataTable();
                string newExcelName = string.Empty;
                dtCsv.Columns.Add("群組", typeof(String));
                dtCsv.Columns.Add("編號", typeof(String));
                dtCsv.Columns.Add("連結名稱", typeof(String));
                dtCsv.Columns.Add("目的連結", typeof(String));
                dtCsv.Columns.Add("點閱次數", typeof(String)); 
                dtCsv.Columns.Add("狀態", typeof(String));
                dtCsv.Columns.Add("統計連結位置", typeof(String));
                //string[] colname = { "群組", "編號", "連結名稱", "目的連結", "點閱次數", "狀態", "統計連結位址" };
                string newName = string.Empty;
                string fileName = "連接點管理匯出" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                newName = Server.MapPath(excelPath) + fileName;
                foreach (DataRow dr in dt.Rows)
                {
                    dr["status_name"] = (dr["status"].ToString() == "1" ? "正常" : "停用");
                    dr["redirect"] = LinkPath+"/public/link.php?r=" + dr["redirect_id"].ToString();
                }
                dt.Columns.Remove("status");
                foreach (DataRow dr in dt.Rows)
                {
                    DataRow drr = dtCsv.NewRow();
                    drr[0] = dr["group_name"];
                    drr[1] = dr["redirect_id"];
                    drr[2] = dr["redirect_name"];
                    drr[3] = dr["redirect_url"];
                    drr[4] = dr["redirect_total"];
                    drr[5] = dr["status_name"].ToString();
                    drr[6] = dr["redirect"];
                    dtCsv.Rows.Add(drr);
                }
                if (System.IO.File.Exists(newName))
                {
                    //設置文件的屬性,以防刪除文件的時候因為文件的屬性造成無法刪除
                    System.IO.File.SetAttributes(newName, FileAttributes.Normal);
                    System.IO.File.Delete(newName);
                }
                //CsvHelper.ExportDataTableToCsv(dt, newName, colname, true);

                StringWriter sw = ExcelHelperXhf.SetCsvFromData(dtCsv, "連結管理.csv");
                Response.Clear();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + "連結管理_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv");
                Response.ContentType = "application/ms-excel";
                Response.ContentEncoding = Encoding.Default;
                Response.Write(sw);
                Response.End();
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                json = "{success:false,data:[]}";
            }
        }