导出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;
	}



  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
esaypoi 是一款非常强大的 Java Excel 处理库,它提供了丰富的功能,如读取 Excel、写入 Excel、样式设置、工作表操作等。其中模板导出是常用的功能之一,通过使用 freeMarker 引擎,可以将数据动态地插入到 Excel 模板中,使得导出 Excel 格式更加规范统一。而在模板导出中,循环指令 fe 和合并单元格是比较常用的操作,但是也容易出现格式错乱的问题。 在使用 fe 进行循环操作时,循环次数是动态的,因此合并单元格的位置也需要根据循环次数动态调整,否则可能出现不符合预期的效果。解决这个问题的方法是,在循环之前先进行合并单元格,然后在循环过程中,只需要添加数据即可。 另外,合并单元格也需要根据实际需求设置合适的样式,例如合并单元格的边框、字体、颜色等。如果在合并单元格之后再设置样式,可能会导致格式错乱。因此,在实现合并单元格的同时,需要设置好相应的样式。 最后,还需注意的是,在循环和合并单元格的过程中,尽量避免使用硬编码,将常量抽离出来定义成全局变量或常量,方便管理和修改。 总之,esaypoi 模板导出循环指令 fe 合并单元格格式错乱问题的解决方法,主要是在循环之前进行合并单元格,然后在循环过程中添加数据,同时设置好相应的样式,并避免使用硬编码。这样可以保证导出Excel 格式更加规范统一,从而提高导出效率和工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值