使用OleDb导入csv文件的时候,如果文件里面的某些列包含特殊字符,我们需要对特殊字符进行处理。
比如双引号,单引号,斜杠。。。
有两种方式:
1.使用正则表达式

StreamReader reader = new StreamReader(filePath, System.Text.Encoding.UTF8, false);//读取文件, filePath为文件路径包含文件名。while (!reader.EndOfStream)//开始遍历文件每一行内容{string str = reader.ReadLine();string[] split = Regex.Split(str, @",(?=(?:[^""\\]*""[^""\\]*"")*[^""\\]*$)");//将每行内容中的特殊字符进行转换替换。for (int i = 0; i < split.Length; i++){if (split[i].Length >= 2){if (split[i].IndexOf("\"") == 0) split[i] = split[i].Substring(1, split[i].Length-1);if (split[i].LastIndexOf("\"") == (split[i].Length - 1)) split[i] = split[i].Substring(0, split[i].Length - 1);}split[i].Replace("\"\"", "\"");}}
  1. 遍历每个单元格中的字符串,替换特殊字符。
 public static String[] GetValue(String inString, String delimiter, Boolean deletequotes){//inString为你要处理的字符串的值,delimiter为分隔符,用什么进行分割,比如逗号String[] outString = null;try{int tokencount = 0;string quote = "\"";string delim = delimiter.Substring(0, 1);String[] tempString = new String[400];Boolean inquotes = false;Boolean quoteinquote = false;StringBuilder sb = new StringBuilder();for (int x = 0; x < inString.Length; x++){string cchar = inString.Substring(x, 1);if (cchar == quote){if (!inquotes){inquotes = true;quoteinquote = false;}else{if ((x == inString.Length - 1) || inString.Substring(x + 1, 1) == delim){inquotes = false;quoteinquote = false;}else{quoteinquote = true;}}}if ((cchar == delim) && !inquotes){if ("null".Equals(sb.ToString())){tempString[tokencount] = "";}else{tempString[tokencount] = sb.ToString();}sb = new StringBuilder();tokencount++;}else if (cchar != quote){sb.Append(cchar);}else if (!deletequotes && quoteinquote){sb.Append(cchar);}}if (inString.Length > 0 && inString.Substring(inString.Length - 1, 1) == delim){tempString[tokencount] = "";}tempString[tokencount] = sb.ToString();tokencount++;outString = new String[tokencount];for (int z = 0; z < tokencount; z++){outString[z] = tempString[z];}}catch (Exception ex){logger.Error(ex);}return outString;}  

C#导入CSV文件处理特殊字符相关推荐

  1. mysql导入csv文件 第一行有问题_mysql 导入 csv文件中数据,只能导入第一行

    用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行. 但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打 ...

  2. 向oracle中导入*.csv文件

    向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...

  3. Oracle数据库表导出和导入csv文件操作

    Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...

  4. python导入csv文件-jupyter 导入csv文件方式

    先将准备的文件上传到自己的jupyter工作空间 import numpy as np import pandas as pd housing = pd.read_csv('housing.csv') ...

  5. python导入csv文件-python如何导入csv文件格式

    1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...

  6. python导入csv文件-python如何导入csv

    1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...

  7. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...

  8. python如何将utf-8编码文件改为ansi编码文件_Excel导入CSV文件乱码?两个小方法让文件正常显示...

    最近网友抱怨,收到别人发来的数据表,打开后长这样: CSV再EXCEL中显示为乱码 除了数字,其他是啥玩意儿 完全乱码... (乱码!乱马!乱吗?乱!) 但是当使用记事本打开,检查确认是否文件有问题时 ...

  9. excel导入csv文件_如何将包含以0开头的列的CSV文件导入Excel

    excel导入csv文件 Microsoft Excel will automatically convert data columns into the format that it thinks ...

最新文章

  1. Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?
  2. 如何对phpcms v9的首页列表进行分页?
  3. C语言中%c与%s的区别与划分
  4. html transform属性,css3 transform属性详解
  5. 67 SD配置-交货凭证配置-分配 SD 查找过程/激活检查
  6. @Value取值为NULL的解决方案
  7. mac Zip 常用命令
  8. 神经网络基本原理简明教程之线性回归预测房价
  9. Google 发布硬盘搜索引擎
  10. js实现全国省份下拉
  11. Android语音识别-阿里语音识别
  12. Android网络框架情景分析之NetworkManagementService和Netd交互深入分析一
  13. 仓库管理系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. 使用watermark.js给HTML、Word、PPT、Excel等添加水印
  15. 解决Oracle MySQL 安全漏洞(CVE-2021-22570)
  16. JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】
  17. 帮助你快速懂得心算十进制转二进制。(理解就会)
  18. Spring MVC 教程,快速入门,深入分析
  19. java图形验证码识别-阿里云OCR(精准率50%)
  20. JavaWeb-JavaScript API

热门文章

  1. MATLAB对图像做仿生变换和对两图像小波做变换融合
  2. 04 如何寻找嵌入式各行业项目,嵌入式行业信息网站大全
  3. Android开发常用功能 https://www.2cto.com/kf/201611/561847.html
  4. 限制windows10(win10)自动下载更新包 - 奇怪的办法
  5. “./“”@/”“../” 路径问题——我对你知根知底,我劝你放弃抵抗,跟我走一趟
  6. React-Native with LeanCloud 构建实时聊天软件
  7. 我家云折腾之配置文件共享
  8. java 字符正则匹配算法_java把任意字符串删减成符合一个给定的正则表达式(已知)的方法该怎么写?...
  9. Android IOS WebRTC 音视频开发总结(五一)-- 降噪基本原理
  10. 上海理工大学计算机考研调剂,2020上海理工大学控制科学与工程或相近专业招收考研调剂...