zoukankan      html  css  js  c++  java
  • C#中将DataTable中数据导出到csv文件中

    在上一篇博文【C#读取CSV文件的方法】中,我介绍了读取csv文件中数据的方法,现在我来介绍下将datatable中的数据导出到csv文件中的方法,废话不

    多说了,deme程序的代码如下:

     protected void Button1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("test1");
            dt.Columns.Add("test2");
            dt.Columns.Add("test3");
            dt.Columns.Add("test4");
            dt.Columns.Add("test5");
            for (int i = 0; i < 6; i++)
            {
                dt.Rows.Add();
                dt.Rows[i][0] = "CN"+i.ToString();
                dt.Rows[i][1] = "EN"+i.ToString();
                dt.Rows[i][2] = "JN"+i.ToString();
                dt.Rows[i][3] = "HK"+i.ToString();
                dt.Rows[i][4] = "TW"+i.ToString();
            }

            ExportDataGridToCSV(dt);

        }

        /// <summary>
        /// Export the data from datatable to CSV file
        /// </summary>
        /// <param name="grid"></param>
        public void ExportDataGridToCSV(DataTable dt)
        {
            string strFile = "";
            string path = "";
            
            //File info initialization
            strFile = "test";
            strFile = strFile + DateTime.Now.ToString("yyyyMMddhhmmss");
            strFile = strFile + ".csv";
            path = Server.MapPath(strFile);

            

            System.IO.FileStream fs = new FileStream(path, System.IO.FileMode.Create, System.IO.FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs, new System.Text.UnicodeEncoding());
            //Tabel header
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                sw.Write(dt.Columns[i].ColumnName);
                sw.Write("\t");
            }
            sw.WriteLine("");
            //Table body
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    sw.Write(DelQuota(dt.Rows[i][j].ToString()));
                    sw.Write("\t");
                }
                sw.WriteLine("");
            }
            sw.Flush();
            sw.Close();

            DownLoadFile(path);
        }

        private bool DownLoadFile(string _FileName)
        {
            try
            {
                System.IO.FileStream fs = System.IO.File.OpenRead(_FileName);
                byte[] FileData = new byte[fs.Length];
                fs.Read(FileData, 0, (int)fs.Length);
                Response.Clear();
                Response.AddHeader("Content-Type", "application/notepad");
                string FileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(_FileName));
                Response.AddHeader("Content-Disposition", "inline;filename=" + System.Convert.ToChar(34) + FileName + System.Convert.ToChar(34));
                Response.AddHeader("Content-Length", fs.Length.ToString());
                Response.BinaryWrite(FileData);
                fs.Close();
                System.IO.File.Delete(_FileName);
                Response.Flush();
                Response.End();
                return true;
            }
            catch (Exception ex)
            {
                ex.Message.ToString();
                return false;
            }
        }



        /// <summary>
        /// Delete special symbol
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string DelQuota(string str)
        {
            string result = str;
            string[] strQuota ={ "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "`", ";", "'", ",", ".", "/", ":", "/,", "<", ">", "?" };
            for (int i = 0; i < strQuota.Length; i++)
            {
                if (result.IndexOf(strQuota[i]) > -1)
                    result = result.Replace(strQuota[i], "");
            }
            return result;
        }

  • 相关阅读:
    2021-6-3 日报博客
    2021-6-2 日报博客
    2021-6-1 日报博客
    2021-5-31 日报博客
    团队博客——十日冲刺结束
    团队博客——十日冲刺9
    团队博客——十日冲刺8
    团队博客——十日冲刺7
    周总结9
    团队博客——十日冲刺6
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2305565.html
Copyright © 2011-2022 走看看