导出的CSV数据中含有身份证并在Excel正确显示方法
用到的工具:WPS、记事本(notepad++,Windows系统自带的也可)起因前阵子开发系统的时候,自己给自己挖了个坑,做后台导出功能的时候由于偷懒,使用的是框架默认的导出库,导出数据是CSV格式,在使用Excel打开CSV文件进行查看的时候,才发现数据列为身份证号码的数据会显示出问题,显示为科学计数法(如下图所示),在把单元格格式更为为文本后,数据后三位显示为“000”。当时为了尽快能获取到
用到的工具:WPS、记事本(notepad++,Windows系统自带的也可)
起因
前阵子开发系统的时候,自己给自己挖了个坑,做后台导出功能的时候由于偷懒,使用导出库是框架默认的,导致导出数据是CSV格式,当使用Excel打开CSV文件进行查看的时候,才发现数据列为身份证号码的数据会显示出问题,显示为科学计数法(如下图所示),在把单元格格式更为为文本后,数据后三位显示为“000”,但是还是有一部分能够正常显示的数据,其原因是身份证号码的末尾是“X”,这样Excel在读取这条数据的时候就自动判定为字符串了(而不是数字,也就不采用科学计数法)。
当时为了尽快能获取到正确的数据,就直接使用数据库工具重新写的检索语句进行导出了,此文是后续自己找到的处理身份证数据的方法,文章末尾提供测试用数据,可以进行试验操作,特此记录。
后续处理CSV数据的方法
我们知道CSV格式的数据其实就是文本数据,以逗号“,”和换行符进行分割,可以使用记事本类软件打开查看,可以看到如下图的数据,也说明了当时导出的CSV格式数据是没有问题的,既然原始数据没有问题,我们就可以想办法进行处理。
步骤一
使用记事本打开CSV格式数据,并复制内容到剪切板
步骤二
使用WPS新建一个表格,在A1单元格出粘贴剪切板中内容,如下图
步骤三
选中数据列A,使用快捷键(CTRL+H),打开查找并替换,把英文逗号“,”替换为英文逗号+英文单引号“,’”,然后点击全部替换,填写内容如下图
替换后的A类数据如下图所示,相当于除了ID列,其他所有列前面都插入了英文单引号“,”,这样就Excel就会识别其他列的内容也是字符串格式了
步骤四
对A列数据进行分列处理,依次在工具栏选择选择数据->分列->智能分列
,操作选项如下图
在对话框中点击“完成”,确定进行数据分列
完成处理
此时已经成功显示身份证号码了,结果如下图所示,手机号码也可以采用此方式进行处理。
文章中使用的数据示例下载地址:
https://gitee.com/alexwalt/csv-excel-data
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)