美文网首页
正确生成csv文件

正确生成csv文件

作者: namelessdu | 来源:发表于2020-08-25 22:29 被阅读0次

正确生成csv文件

项目上需要通过Java程序生成csv文件进行数据传递。但是由于传递的文本中包含英文逗号,双引号,换行符这样的特殊字符,导致生成的csv文件被对方系统解析时经常串列。
查询资料后发现需要对这些特殊字符做特殊处理才可以。

特殊字符 处理方式 例子
英文逗号 如果包含英文逗号,需要将这一列的内容用双引号括起来 abc,d -> "abc,d"
换行符 如果包含换行符,需要将这一列的内容用双引号括起来 abc\nd -> "abc\nd"
双引号 如果包含双引号,需要在双引号前面再加一个双引号作为转义,同时将这一列的内容用双引号括起来 a"bcd -> "a""bcd"

想起之前在EBS的项目上也会有写通用导入程序,上传一个csv文件然后解析csv文件并存储进数据库表,感觉也会遇到同样的特殊字符的问题。回去翻了一下通用导入的处理代码,发现确实是加了这个逻辑的处理。
大致逻辑如下:

readline = 从附件中读取一行
if 这一行中双引号的个数为奇数 then
line = readline & 换行符 & nextline
else
line = readline
end if

position = 0
column = 0
while position <=line.length()
    comma_position = 从position开始找到下一个应该是分隔符的逗号符号的位置(在这个逗号前没有双引号或者有双数的双引号)或者是line的最后一个位置
    string_arrary[column] = line 里面从postion 到 comma_postion中间的字符,如果字符串的开头结尾都是双引号,则去除头尾的双引号,然后把两个双引号替换成一个双引号
    postion = comma_postion + 1   

最后,不得不说,还是Python香, import csv啥都搞定了

参考 Common Format and MIME Type for Comma-Separated Values (CSV) Files

相关文章

  • 正确生成csv文件

    正确生成csv文件 项目上需要通过Java程序生成csv文件进行数据传递。但是由于传递的文本中包含英文逗号,双引号...

  • Java生成csv文件

    可以通过字段数组的集合或者通过实体对象集合生成csv文件。 1、数组集合生成 生成csv文件 2、DTO集合生成 ...

  • 生成csv文件

    public static void exportCsv(){ String file="d://out.csv"...

  • PHP tools:CSV文件处理

    一、生成CSV文件 1、主要函数: fputcsv—将行格式化为 CSV 并写入文件指针 int fputcsv ...

  • PHP强化之10 - CSV文件处理

    一、生成CSV文件 1、主要函数: fputcsv—将行格式化为 CSV 并写入文件指针 int fputcsv ...

  • hive服务器传输文件步骤

    1.先利用mysql导入给定的.csv文件生成对应表 2.再从mysql中导出生成的新表,导出为.csv文件(注意...

  • 最浅显易懂的Django系列教程(30)-生成CSV文件

    生成CSV文件: 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来。...

  • csv文件的生成

    列表导出为csv文件 字典导出为csv文件 json导出为csv文件

  • python创建csv文件中文乱码

    使用csv模块生成文件出现中文乱码,是因为python生成的中文编码为UTF8,而csv默认打开为gb2312,所...

  • QGIS学习笔记(003)

    【怎样导入文本文件(CSV)生成线段】 SHAPE字段含有空间数据,但此文件不能直接用,需要处理。 1、将CSV文...

网友评论

      本文标题:正确生成csv文件

      本文链接:https://www.haomeiwen.com/subject/nsdtsktx.html