• datatable to csv


     

        /// <summary>
        
    /// DataTableToCsv
        
    /// </summary>
        
    /// <param name="dt"></param>
        
    /// <param name="fileName">文件名称,不用后缀</param>
        
    /// <remarks>
        
    /// 文件格式
        
    ///每条记录占一行 
        
    ///以逗号为分隔符 
        
    ///逗号前后的空格会被忽略 
        
    ///字段中包含有逗号,该字段必须用双引号括起来 
        
    ///字段中包含有换行符,该字段必须用双引号括起来 
        
    ///字段前后包含有空格,该字段必须用双引号括起来 
        
    ///字段中的双引号用两个双引号表示 
        
    ///字段中如果有双引号,该字段必须用双引号括起来 
        
    ///第一条记录,可以是字段名 
        
    /// </remarks>
        public static void DataTableToCsv(DataTable dt, string fileName)
        {
            
    //Clear <div  id="loading" ..
            HttpContext.Current.Response.Clear();

            
    #region Export Grid to CSV
            
    // Create the CSV file to which grid data will be exported.
            System.IO.StringWriter sw = new System.IO.StringWriter();
            
    // First we will write the headers.
            int iColCount = dt.Columns.Count;
            
    for (int i = 0; i < iColCount; i++)
            {
                sw.Write(
    "\"" + dt.Columns[i] +"\"");
                
    if (i < iColCount - 1)
                {
                    sw.Write(
    ",");
                }
            }
            sw.Write(sw.NewLine);
            
    // Now write all the rows.
            foreach (DataRow dr in dt.Rows)
            {
                
    for (int i = 0; i < iColCount; i++)
                {
                    
    if (!Convert.IsDBNull(dr[i]))
                        sw.Write(
    "\"" + dr[i].ToString() + "\"");
                    
    else
                        sw.Write(
    "\"\"");

                    
    if (i < iColCount - 1)
                    {
                        sw.Write(
    ",");
                    }
                }
                sw.Write(sw.NewLine);
            }
            sw.Close();
            
    #endregion

            HttpContext.Current.Response.AddHeader(
    "Content-Disposition""attachment; filename=" + fileName + string.Format("{0:yyyyMMddhhmmss}", DateTime.Now) + ".csv");
            HttpContext.Current.Response.ContentType 
    = "application/vnd.ms-excel";
            HttpContext.Current.Response.ContentEncoding 
    = System.Text.Encoding.GetEncoding("GB2312");
            HttpContext.Current.Response.Write(sw);
            HttpContext.Current.Response.End();
        }
        /// <summary>
        
    /// 该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径,sheetname为表示那个Excel表;
        
    /// </summary>
        
    /// <param name="filepath">filepath</param>
        
    /// <param name="sheetname">Sheet1</param>
        
    /// <returns></returns>
        public DataSet ExcelDataSource( string filepath , string sheetname )
        {
            
    string strConn;
            strConn 
    = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
            OleDbConnection conn 
    = new OleDbConnection(strConn);
            OleDbDataAdapter oada 
    = new OleDbDataAdapter ( "select * from [" + sheetname + "$]", strConn );
            DataSet ds 
    = new DataSet ();
            oada.Fill (ds);
            
    return ds ;
        }
  • 相关阅读:
    ip addr add 192.168.1.5 peer 192.168.1.6 dev enahisic2i1
    mininet对象添加带外管理
    mininet + mnec +bgpd
    Exception: Could not find a default OpenFlow controller
    mininet xterm图像化
    哇塞的Docker——vscode远程连接Docker容器进行项目开发(三)
    DJB Hash Function,也称times33算法, php的实现与分析-算法
    特别好用的音乐软件(亲测有效)
    实验室第一次排位赛
    C语言 编写“剪刀石头布”小游戏
  • 原文地址:https://www.cnblogs.com/myx/p/1383879.html
Copyright © 2020-2023  润新知