1. string path = @"C:\Users\keen_\Downloads\upload\upload\Upload\20140701141934_export.csv";
  2. ImportDataTable(path);
  3.  
  4. //2014-07-01
  5. //get csv file to datatable
  6. private static DataTable ImportDataTable(string filepath)
  7. {
  8. DataTable mydt = new DataTable("myTableName");
  9. mydt.Columns.Add("Data ID", System.Type.GetType("System.String"));
  10. mydt.Columns.Add("Field Name", System.Type.GetType("System.String"));
  11. mydt.Columns.Add("New Value", System.Type.GetType("System.String"));
  12. DataRow mydr;
  13. using (System.IO.StreamReader mysr = new System.IO.StreamReader(filepath))
  14. {
  15. int data;
  16. char current;
  17. StringBuilder text = new StringBuilder();
  18.  
  19. IDictionary<int, List<string>> results = new Dictionary<int, List<string>>();
  20. bool isInYinHao = false; ;
  21. int lineId = ;
  22. int index = ;
  23. while (true)
  24. {
  25. data = mysr.Read();
  26. if (data != -)
  27. {
  28. current = (char)data;
  29. if (current == '"')
  30. {
  31. if (isInYinHao)
  32. {
  33. isInYinHao = false;
  34. }
  35. else
  36. {
  37. if (index > )
  38. {
  39. text.Append(current);
  40. }
  41.  
  42. isInYinHao = true;
  43. }
  44. }
  45. else if (current == ',')
  46. {
  47. if (isInYinHao)
  48. {
  49. text.Append(current);
  50. }
  51. else
  52. {
  53.  
  54. SaveResult(results, lineId, text);
  55. index = ;
  56. continue;
  57. }
  58. }
  59. else if (current == '\r')
  60. {
  61. if (isInYinHao)
  62. {
  63. text.Append(current);
  64. }
  65. }
  66. else if (current == '\n')
  67. {
  68. if (isInYinHao)
  69. {
  70. text.Append(current);
  71. }
  72. else
  73. {
  74. SaveResult(results, lineId, text);
  75. index = ;
  76. lineId++;
  77. continue;
  78. }
  79. }
  80. else if (current == '\0')
  81. {
  82. }
  83. else
  84. {
  85. text.Append(current);
  86. }
  87.  
  88. index++;
  89. }
  90. else
  91. {
  92. //Read to file end.
  93. SaveResult(results, lineId, text);
  94. break;
  95. }
  96. }
  97.  
  98. foreach (int id in results.Keys)
  99. {
  100. mydr = mydt.NewRow();
  101. for (int i = ; i < results[id].Count; i++)
  102. {
  103. if (i > )
  104. {
  105. break;
  106. }
  107.  
  108. mydr[i] = results[id][i];
  109. }
  110.  
  111. mydt.Rows.Add(mydr);
  112. }
  113.  
  114. }
  115.  
  116. return mydt;
  117. }
  118. private static void SaveResult(IDictionary<int, List<string>> results, int lineId, StringBuilder text)
  119. {
  120. if (!results.ContainsKey(lineId))
  121. {
  122. results.Add(lineId, new List<string>());
  123. }
  124.  
  125. results[lineId].Add(text.ToString());
  126. text.Remove(, text.Length);
  127. }

按格式读取csv文件内容的更多相关文章

  1. Python中读取csv文件内容方法

    gg 224@126.com 85 男 dd 123@126.com 52 女 fgf 125@126.com 23 女 csv文件内容如上图,首先导入csv包,调用csv中的方法reader()创建 ...

  2. 《手把手教你》系列技巧篇(六十九)-java+ selenium自动化测试 - 读取csv文件(详细教程)

    1.简介 在实际测试中,我们不仅需要读取Excle,而且有时候还需要读取CSV类的文件.如何去读取CSV的文件,宏哥今天就讲解和分享一下,希望对你能够有所帮助.前面介绍了如何读取excel文件,本篇介 ...

  3. python之小应用:读取csv文件并处理01数据串

    目的:读取csv文件内容,把0和1的数据串取出来,统计出现1的连续次数和各次数出现的频率次数 先读取csv文件内容: import csv def csv_read(file): list = [] ...

  4. C#:StreamReader读取.CSV文件(转换成DataTable)

    using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> /// ...

  5. selenium3 文件系列之------ opencsv读取csv文件

    最近在学习selenium有关文件的读取测试,今天先总结一下如何读取csv文件.CSV的定义是与逗号分隔的值(Comma-Separated Values),在Java中需要用到第三方lib去处理读取 ...

  6. VB6.0 读取CSV文件

    最近做了一个Upload文件的需求,文件的格式为CSV,读取文件的方法整理了一下,如下: 1.先写了一个读取CSV文件的Function: '读取CSV文件 '假设传入的参数strFile=C:\Do ...

  7. PHP读取Excel文件内容

    PHP读取Excel文件内容   项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel.   PHPExcelReader比较 ...

  8. 手工创建tomcat应用,以及实现js读取本地文件内容

    手工创建tomcat应用: 1.在webapps下面新建应用目录文件夹 2.在文件夹下创建或是从其他应用中复制:META-INF,WEB-INF这两个文件夹, 其中META-INF清空里面,WEB-I ...

  9. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

随机推荐

  1. NYOJ542-试制品

    题目链接:点击打开链接 试 制 品 时间限制:1000 ms  |  内存限制:65535 KB 难度: 描述 ZZ大学的Dr.Kong最近发现实验室的很多试制品都已经用完.由于项目经费有限,为了节省 ...

  2. 提升Exadata 计算节点本地IO性能

    1.问题概述 某客户有一台Exadata X2-2,每个计算节点是4块普通的本地SAS硬盘做成的RAID5,然后在RAID5的本地硬盘上创建了一个文件系统来存放DSG数据同步软件,在后续的运维过程中, ...

  3. Vs 排除的文件➕ 添加回项目。。。。

    显示所有文件之后吧,就能看到排除掉的文件了.右键之前的文件,包括在项目中即可.

  4. t.call is not a function

    js 写错了... 代码: $("form").each({$(this).submit(function(){return false;})}); 丢了一个 function() ...

  5. Gym 101047K Training with Phuket's larvae

    http://codeforces.com/gym/101047/problem/K 题目:给定n<=2000条绳子,要你找出其中三条,围成三角形,并且要使得围成的三角形面积最小 思路: 考虑一 ...

  6. Unity WWW下载图片并保存到Unity的Assets下

    1.新建一个UGUI的Image. 2.新建一个脚本wwwTest.cs: using System.Collections; using System.Collections.Generic; us ...

  7. Unity Gizmos绘制指定长宽的网格

    using UnityEngine; using System.Collections; public class GridMap : MonoBehaviour { ; //宽度 ; //长度 vo ...

  8. (转)Linux系统stat指令用法

    <Linux系统stat指令用法>  原文:https://www.cnblogs.com/linux-super-meng/p/3812695.html stat指令:文件/文件系统的详 ...

  9. Oracle视图,索引,序列

    什么是视图[View] (1)视图是一种虚表 (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELEC ...

  10. 全栈工程师,也叫全端工程师,英文FullStackdevelopver。是指掌握多种技能,并能利用多种技能独立完成产品的人。

    全栈工程师的发展 在系统全面的大公司,全栈工程师并没有一个稳定的发展职位.我无比赞同知乎那个帖子里面这样的一句话: 一个真正的全栈工程师,目标只有一个:创业. 听起来有些悲凉,但事实就是如此.任何一个 ...