C#导入CSV文件处理特殊字符
使用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("\"\"", "\"");}}
- 遍历每个单元格中的字符串,替换特殊字符。
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文件处理特殊字符相关推荐
- mysql导入csv文件 第一行有问题_mysql 导入 csv文件中数据,只能导入第一行
用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行. 但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打 ...
- 向oracle中导入*.csv文件
向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...
- Oracle数据库表导出和导入csv文件操作
Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...
- python导入csv文件-jupyter 导入csv文件方式
先将准备的文件上传到自己的jupyter工作空间 import numpy as np import pandas as pd housing = pd.read_csv('housing.csv') ...
- python导入csv文件-python如何导入csv文件格式
1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...
- python导入csv文件-python如何导入csv
1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...
- python如何将utf-8编码文件改为ansi编码文件_Excel导入CSV文件乱码?两个小方法让文件正常显示...
最近网友抱怨,收到别人发来的数据表,打开后长这样: CSV再EXCEL中显示为乱码 除了数字,其他是啥玩意儿 完全乱码... (乱码!乱马!乱吗?乱!) 但是当使用记事本打开,检查确认是否文件有问题时 ...
- excel导入csv文件_如何将包含以0开头的列的CSV文件导入Excel
excel导入csv文件 Microsoft Excel will automatically convert data columns into the format that it thinks ...
最新文章
- Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?
- 如何对phpcms v9的首页列表进行分页?
- C语言中%c与%s的区别与划分
- html transform属性,css3 transform属性详解
- 67 SD配置-交货凭证配置-分配 SD 查找过程/激活检查
- @Value取值为NULL的解决方案
- mac Zip 常用命令
- 神经网络基本原理简明教程之线性回归预测房价
- Google 发布硬盘搜索引擎
- js实现全国省份下拉
- Android语音识别-阿里语音识别
- Android网络框架情景分析之NetworkManagementService和Netd交互深入分析一
- 仓库管理系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 使用watermark.js给HTML、Word、PPT、Excel等添加水印
- 解决Oracle MySQL 安全漏洞(CVE-2021-22570)
- JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】
- 帮助你快速懂得心算十进制转二进制。(理解就会)
- Spring MVC 教程,快速入门,深入分析
- java图形验证码识别-阿里云OCR(精准率50%)
- JavaWeb-JavaScript API
热门文章
- MATLAB对图像做仿生变换和对两图像小波做变换融合
- 04 如何寻找嵌入式各行业项目,嵌入式行业信息网站大全
- Android开发常用功能 https://www.2cto.com/kf/201611/561847.html
- 限制windows10(win10)自动下载更新包 - 奇怪的办法
- “./“”@/”“../” 路径问题——我对你知根知底,我劝你放弃抵抗,跟我走一趟
- React-Native with LeanCloud 构建实时聊天软件
- 我家云折腾之配置文件共享
- java 字符正则匹配算法_java把任意字符串删减成符合一个给定的正则表达式(已知)的方法该怎么写?...
- Android IOS WebRTC 音视频开发总结(五一)-- 降噪基本原理
- 上海理工大学计算机考研调剂,2020上海理工大学控制科学与工程或相近专业招收考研调剂...