首页 > 编程语言 >【C#】读取csv文件数据返回DataTable

【C#】读取csv文件数据返回DataTable

时间:2024-12-10 16:54:28浏览次数:3  
标签:tableHead C# System IO new dt csv DataTable

 public static DataTable ReadDataTable(string filePath)
 {
     DataTable dt = new DataTable();
     try
     {
         System.Text.Encoding encoding = Encoding.Default;//GetType(filePath); //
         // DataTable dt = new DataTable();
         System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open,
             System.IO.FileAccess.Read);
         System.IO.StreamReader sr = new System.IO.StreamReader(fs, encoding);
         //记录每次读取的一行记录
         string strLine = "";
         //记录每行记录中的各字段内容
         string[] aryLine = null;
         string[] tableHead = null;
         //标示列数
         int columnCount = 0;
         //标示是否是读取的第一行
         bool IsFirst = true;
         //逐行读取CSV中的数据
         while ((strLine = sr.ReadLine()) != null)
         {
             if (IsFirst == true)
             {
                 tableHead = strLine.Split(',');
                 IsFirst = false;
                 columnCount = tableHead.Length;
                 //创建列
                 for (int i = 0; i < columnCount; i++)
                 {
                     DataColumn dc = new DataColumn(tableHead[i]);
                     dt.Columns.Add(dc);
                 }
             }
             else
             {
                 aryLine = strLine.Split(',');
                 DataRow dr = dt.NewRow();
                 for (int j = 0; j < columnCount; j++)

                 {
                     dr[j] = aryLine[j];
                 }
                 dt.Rows.Add(dr);
             }
         }

         if (aryLine != null && aryLine.Length > 0)

         {
             dt.DefaultView.Sort = tableHead[0] + " " + "asc";
         }
         sr.Close();
         fs.Close();
     }

     catch (Exception ex)
     {
     }
     return dt;
 }

标签:tableHead,C#,System,IO,new,dt,csv,DataTable
From: https://www.cnblogs.com/qiutian-hao/p/18597652

相关文章

  • Oracle 用户、角色和权限
    Oracle用户、角色和权限scott是oracle数据库创建后,默认存在的供我们初学者学习使用的,一般实际环境中无此用户(禁用或删除)sys是系统管理员用户,拥有最高权限,相当于QQ群的群主,默认密码change_on_installsystem是系统操作员,权限仅次于sys,相当于QQ群的管理员,默认密码manager1、......
  • CSS flex 子项目中的 flex 属性家族
    CSSflex子项目中的flex属性家族零、参考文章一文搞懂flex属性聊聊Flexbox布局中的flex的演算法一、基础概念语法flex是简写语法,其作用是设置弹性项目如何增大或缩小以适应其弹性容器中可用的空间,其具体代表是:flex-grow:扩展子元素长度flex-shrink:收缩子元素长度......
  • mysql 大表drop和truncate 技术风险点
    1、用这个drop语句举例:droptableT;在之前的老版本中,但如果表T比较大,占用的各种缓存较多,这个SQL在对表进行删除的时候,需要依次清理掉bufferpool中的page,时间久回比较久;清理的动作会影响到在线的业务;在老版本的内核中的大致逻辑如下:扫描lru链表,如果page属于T表,就从lru链表,hash......
  • Cgroup内核文档翻译(9)——cgroup-v1/memory.rst
    翻译:msm-5.4/Documentation/admin-guide/cgroup-v1/memory.rst============================内存资源控制器===========================注意:本文档已过时,需要完全重写。它仍然包含有用的信息,因此我们将其保留在这里,但如果您需要更深入的了解,请务必检查当前代码。注意:在本文......
  • 在cmake中移动文件夹
    1.使用file命令拷贝后删除源文件file(COPY${SOURCE_FILE}DESTINATION${DESTINATION_FILE})file(REMOVE${SOURCE_FILE})2.使用系统的移动命令execute_process(COMMAND${CMAKE_COMMAND}-Erename${SOURCE_FILE}${DESTINATION_FILE})或execute_process(CO......
  • 11C++循环结构-for循环(1)
    一、for语句引出问题:当需要重复执行某一语句时,使用for语句。for语句最常用的格式为:for(循环变量赋初值;循环条件;循环变量增值)语句;注:“语句;”就是循环体,可以是一个简单的语句,也可以是一个用“{}”括起来的复合语句。它的执行过程如图示:编写这个程序可以如此:#include......
  • springboot基于vue.js的客户关系管理系统(crm)的设计与实现论文
    系统简介现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本客户关系管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处......
  • jQuery和CSS3炫酷3D旋转画廊特效插件
    这是一款效果非常炫酷的jQuery和CSS33D旋转画廊特效插件。第一个DEMO是一个简单的例子,使用CSS3来制作3d旋转效果,然后用js来控制前后导航按钮。第二个DEMO是第一个DEMO的升级版,它增加了图片标题、查看图片、键盘控制等其它功能。在线演示下载 HTML结构这个3D画廊的HTML结......
  • SpringBoot+logback 日志打印脱敏,正常获取对象不受影响
    添加依赖注意:springboot版本2.7.0<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.36</version></dependency><......
  • textillate-jQuery和css3文字动画特效库
    textillate.js是一款效果炫酷的jQuery和css3文字动画特效库插件。它通过结合其它一些动画库来制作各种CSS3文字动画特效。在线演示下载 如何使用基本的html结构如下:<h1class="tlt">MyTitle</h1>在页面的头部引入jQuery和jquery.textillate.js文件。......