前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >技术 | 当csv文件用excel打开乱码时怎么做

技术 | 当csv文件用excel打开乱码时怎么做

作者头像
做数据的二号姬
发布2024-11-25 09:52:00
发布2024-11-25 09:52:00
4200
举报

原创内容

No.695

技术 | 当csv文件用excel打开乱码时怎么做

分享几个职场办公小技巧~

图片由海艺AI绘制

各位打工仔们,可能在工作中的时候遇到过各种各样的csv文件用excel打开的时候的异常情况。最近就遇到了一个粉丝的提问。

CSV,全称为Comma-Separated Values(逗号分隔值),是一种常见的文件格式,用于存储表格数据,如电子表格或数据库。CSV文件以纯文本形式存储,其中的数据通常由逗号分隔,因此得名。这种格式的文件可以被多种程序读取,如Microsoft Excel、Google Sheets、数据库管理系统,以及各种编程语言的库。

然而在实际使用的时候,这种格式的文件常常给大家带来一些奇奇怪怪的小困扰。

首先,最常见的一个问题就是中文乱码的问题。

这个算是最常见的csv文件打开问题了,问题的原因也非常简单,中文编码问题。

在计算机中,中文编码是指将中文字符转换为计算机可以识别和存储的字节序列的规则。随着计算机技术的发展,为了支持中文等非拉丁字母语言的编码,出现了多种编码方式。比如GB2312/GBK、UTF-8、UTF-8 BOM等。

对于这种问题,我们可以尝试用txt或者其他其他文本编辑器(如notepad++)打开一下csv文件,如果在其他文本编辑器中中文是正常显示而不是乱码的基本可以实锤确认就是文件编码的问题导致了excel中打开出现中文乱码的问题。

绝大多数的文本编辑器都可以在右下角看到文件的基础信息:

一般来说,把编码方式修改为UTF-8 BOM的形式就可以打开了。这里截一个vscode的图,其他的软件操作也是类似,保存的时候另存为其他的编码就可以解决了。

但是这个方法有时候没那么好用,另存了一个编码之后依然报错,得再改一种编码方式进行另存。这里再介绍另一种简单的方式,直接用power query进行解决。

首先我们打开一个空白的excel表,选择数据中的从csv获取数据:

然后根据提示选择想要打开的csv文件。会弹出一个power query的界面,在下图这个预览的界面就可以选择文件的编码。绝大多数情况下excel自动识别的结果就是正确的,但是偶尔也有识别不对的情况,我们就需要手段选一下这里的编码,选择预览结果中没有中文的乱码的一行数据。

确认编码之后,点击加载数据,就可以解决编码引发的中文乱码问题了。

第二种情况就比较复杂了,打开之后发现数据有串行串列的问题。

比如下面这种情况:实际上这个这个字段不应该有一些乱七八糟很奇怪的数据。

这种情况处理起来就有点复杂了,我们首先要确认的是原始数据是不是就是有问题的,如果确认原始数据没有问题,就要确认一下数据异常展示的原因是什么。

比如上面这个数据,我们就要看一下前一行的数据和有问题的这行数据是什么关系。数据安全的问题,不方面给大家太细节的截图,总之,上面截图的问题是数据中有一个特殊的换行符导致前一行数据在用excel打开的时候异常地换行了。

这种问题处理起来就有点麻烦了,对于数据量非常小的情况下,我们可以直接用txt打开csv文件,手动把异常的换行符给删掉再进行用excel打开,但如果数据量大的话就不推荐这么干了。

如果数据是自己从系统或者数据库里导出的,就可以看看修改一下导出的设置重新导出,比如设置一下导出数据的换行符,不要和数据中正常的换行符一致,或者写一下SQL把数据中有的换行符给replace掉之类的。

不过总的来说不推荐,因为涉及到这个问题的字段可能不止一个,写replace还是挺麻烦的。有同学说,我直接导出xlsx格式不就可以了嘛,整那么麻烦干嘛。但是这种情况下,直接导出xlsx格式的文件很有可能会弹出报错的哦~

如果数据是别人提供的,很多时候我们没法要求别人配合你做这么多东西。尤其是各位做商分的同学,找IT那边要个数据人家肯给就不错了,哪里还敢要求这么多。这种时候有一个非常简单的解决方案,告诉对方:请给我JSON格式的文件。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但JSON是独立于语言的文本格式,许多编程语言都支持JSON格式的数据解析和生成。

用JSON格式能够很快地解决这个问题其实主要是因为JSON格式本身的存储方式是key-value的形式,这种格式下基本不太会因为特殊字符引起什么问题。而我们借助power query打开JSON文件并加载到数据表中就可以就可以神速解决上面的问题了。

我们还是打开一个空白的excel表,在数据中选择获取数据>来自文件>从JSON:

根据弹出的提示选择需要打开的问题,然后就会自动启动power query的界面,大概是这个样子的:

选择列表工具中的转换到表:

绝大多数情况下这里的设置用默认的就可以了:

然后点击这里展开数据:

大家可以根据实际的需求选择要展开的字段和字段名,如果是单纯的解析文件,推荐下图中的2不勾选进行展开:

预览确认数据没问题之后就可以点关闭并上载把数据加载到excel表格中了:

这种办法就可以快解决数据串行的问题,又不需要花费太多的精力去替换特殊字符,非常实用。

二号姬

半路出家自学成才的文科数据人,看过了大厂的风景也做过了小厂的CDO~目前是闲职,写写稿带带学生,欢迎勾搭~

更多干货,尽情关注

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 做数据的二号姬 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档