zoukankan      html  css  js  c++  java
  • 把CSV文件读到一个DataTable中

    在处理CSV文件的时候发现,不能简单的用逗号来拆分内容,如果在双引号里面有逗号,那么这行将解析错误。最后找到个用正则表达式来splite的简单方面。原理就是用","来作为拆分的标记。

             /// <summary>
            
    /// 把一个CSV文件读到一个DataTable中
            
    /// </summary>
            
    /// <param name="strpath">文件完整路径</param>
            
    /// <returns>DataTable</returns>
            public static DataTable GetTable(string strpath)
            {
                Regex reg 
    = new Regex("\",\"");
                
    int intColCount = 0;
                DataTable mydt 
    = new DataTable("myTableName");

                
    //DataColumn mydc;
                
    //DataRow mydr;

                
    //string strpath = "";
                string strline;
                
    string[] aryline;

                StreamReader mysr 
    = new StreamReader(strpath,System.Text.Encoding.Default);
                strline 
    = mysr.ReadLine();

                aryline 
    = reg.Split(strline);

                intColCount 
    = aryline.Length;
                
    for (int i = 0; i < aryline.Length; i++)
                {
                    DataColumn mydc 
    = new DataColumn(aryline[i].Replace("\""""), typeof(string));
                    mydt.Columns.Add(mydc);
                }
                
                
    while ((strline = mysr.ReadLine()) != null)
                {
                    aryline 
    = reg.Split(strline);
                    
                    DataRow mydr 
    = mydt.NewRow();
                    
    for (int i = 0; i < intColCount; i++)
                    {
                        mydr[i] 
    = aryline[i].Replace("\"","");
                    }
                    mydt.Rows.Add(mydr);
                }
                
    return mydt;
            }
  • 相关阅读:
    JSON介绍
    json例子(后台取消息)
    在Struts 2中使用JSON Ajax支持
    JSON介绍
    json例子(后台取消息)
    64位播放器播放RMVB时一卡一顿
    标记一个:HookQQ QQFun CWUB
    Android开发环境搭建全程演示(jdk+eclip+android sdk)
    64位播放器播放RMVB时一卡一顿
    一种可做特殊用途的字符串匹配算法
  • 原文地址:https://www.cnblogs.com/format/p/460075.html
Copyright © 2011-2022 走看看