导出csv格式,一个单元格内容包含“逗号”,“双引号”问题

Posted oO归去来兮Oo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出csv格式,一个单元格内容包含“逗号”,“双引号”问题相关的知识,希望对你有一定的参考价值。

按照如下处理步骤可实现:

csv格式如果有逗号,将这个字段整体用双引号括起来;如果里面还有双引号就替换成两个双引号,这样导出来的格式就不会有问题了


如 cvs文件内容为  aaa,aaa"aaa  在csv文件下显示为



要想正常显示对字符串替换,根据规则转换为   “aaa,aaa” "aaa”  后就能在一个单元格中正常显示如图:

注:由于第二个单元格没内容所以看上去像是第一个单元格的内容跑到了第二个中

/**
	* 方法名称: csvHandlerStr</br>
	* 方法描述: 处理包含逗号,或者双引号的字段</br>
	* 方法参数: @param forecastName
	* 方法参数: @return  </br>
	* 返回类型: String</br>
	* 抛出异常:</br>
	*/ 
	private String csvHandlerStr(String str) 
		//csv格式如果有逗号,整体用双引号括起来;如果里面还有双引号就替换成两个双引号,这样导出来的格式就不会有问题了			
		String tempDescription=str;
		//如果有逗号
		if(str.contains(","))				
			//如果还有双引号,先将双引号转义,避免两边加了双引号后转义错误
			if(str.contains("\\""))
				tempDescription=str.replace("\\"", "\\"\\"");
			
			//在将逗号转义
			tempDescription="\\""+tempDescription+"\\"";
		
		return tempDescription;
	



以上是关于导出csv格式,一个单元格内容包含“逗号”,“双引号”问题的主要内容,如果未能解决你的问题,请参考以下文章

关于VB.NET的CSV文件的读取

LIBRECALC 将单元格内容分隔到新行(逗号分隔),但复制其他内容

C#导入csv文件,数据中有逗号怎么处理

如何修改excel转换csv的分隔符

c#导出excel,设置单元格存储格式为数值类型

以类似 HTML 的方式计算列宽(基于单元格内容)