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;
            }
  • 相关阅读:
    [Linux系统] (3)应用安装方式详解(编译安装、rpm包安装、yum安装)
    [Linux系统] (2)用户权限管理
    jQuery.Validate验证库详解
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    原生js记住密码
    静态网站公用的部分模块的引用(设置)方法
    针对特定浏览器起作用的CSS: IE Chrome Firefox CSS Hack
    HTML5 video 视频标签全属性详解
    js for循环,为什么一定要加var定义i变量
    用谷歌浏览器来当手机模拟器
  • 原文地址:https://www.cnblogs.com/format/p/460075.html
Copyright © 2011-2022 走看看