如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)

191次阅读

共计 2671 个字符,预计需要花费 7 分钟才能阅读完成。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图

方法有三:

文件较少,数据小,用 EXCEL 打开或者导入 csv 文件,然后另存为 excel 工作簿。手动,耗时;

文件较多,数据中等,用 CMD 命令 copy *.csv 新.csv,合并 csv 文件,然后再用 1 的方法打开,另存为 excel 工作簿模式;

文件较多,数据较大,用 EXCEL 中的 VBS 代码批量转换,相当于把方法 1 的手动改为自动运行。

这两个多月,我又开始了不务正业模式。总是喜欢给自己找不痛快,在记忆衰退的阶段居然开始学习 Google Data Analytics 专业课程,各种代码、函数和数据库语言虐得我苦不堪言。好的是课程进入了最后阶段,要独立完成一个 Case Study 就可以结业了。

CAPSTONE 里面有两个 Case Study, 我选择了第一个。为一个共享单车公司分析数据,找出会员和散客的行为差异,并根据数据分析给出建议——如何将尽可能多的散客转化成会员,因为从会员身上获得的利润更高。

此前的课程中跟着老师分析这分析那,还可以勉强跟上。各种测验和考试相对比较友好,有重考和改错的机会,分数不算难看,其中几个课程连跌带爬最终凑合着过关了。但是现在独立来做一个项目,拿到任务的时候就一脸懵,不知道如何下手。

没办法,把课程从头梳理,按照流程一步一步做。独立走路有些困难,却也兴奋。

首先,我下载这个公司的数据。数据是以压缩文件 ZIP 格式保存在服务器上的,从 2013 年到 2022 年每一天的数据,非常庞大。接着解压缩,为了节约时间,全选所有需要解压缩的文件,点击鼠标右键,在菜单中选择解压缩,解压到事前新建的文件中。

解压后的文件是.CSV 格式。我打算使用 EXCEL 或者 GOOGLE SHEET 分析数据,就打算将 CSV 格式转换成 EXCEL 文件。

首先想到的是能否批量选择,然后批量转换,但是右键里面没有这样的功能。批量更改文件的扩展名,将 CSV 批量修改为 xlsx? 但是修改后的文件乱码,没有用。

怎么办?

方法 1

笨人就用笨办法吧。用 EXCEL 打开每一个 CSV 文件, 然后另存为 EXCEL 工作簿 xlsx 格式。用 EXCEL 打开 CSV 文件有两种办法,一是直接点击打开,等待转换; 二是打开一个空白的 EXCEL 文件,然后引入 CSV 文件。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图1

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图2

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图3

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图4

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图5

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图6

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图7

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图8

方法 2:

可是数据文件太多,这样打开、另存,花了几个小时只处理了一丁点文件,电脑还累得蓝屏。我想,这肯定不是处理大批量数据的正确方法。转念一想,这些 CSV 文件的格式基本一样,能否把它们合并在一起,然后用 EXCEL 打开,再另存为工作簿不就可以了吗? 说干就干。

先把这些解压后的 CSV 文件放在一个文件夹中,

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图9

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图10

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图11

最后在文件夹中出现一个名为 new.csv 的文件。用 EXCEL 打开,但是由于文件太大,无法一次性引入所有的数据,要求在新的工作表中再次导入,在文件导入向导中删除已经导入数据,避免重复。但是文件导入向导中根本没有这个选项,不知道是不是我的 Excel 2016 版本太低的缘故。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图12

数据导入后发现,行数达到了 1048576. 已经到了一个 Excel 单个工作表行数的极限,导入的数据也只是从 2020 年 4 月 1 日到 2020 年 7 月 31 日的数据,还有大量的数据没有引入。此时,我意识到,这个数据过于庞大,用 EXCEL 难以处理,必须要使用数据库工具。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图13

此时,我打算将这个合并的 CSV 文件导入 google cloud, 用 BigQuery 处理数据。在添加本地数据时提示文件不能超过 100M,但是这个合并后的文件超过 2G,不可行。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图14

看来将公司的数据以一定的组织结构存放在某个地方也是一门技术活,这可能属于 Data Engineer 或者 Data Science 的工作范畴了。

方法 3:

怎么办呢? 只有求助了。先找度娘。在百度里面搜“如何将 CSV 文件批量转换成 EXCEL 工作簿”,还真有人遇到同样的难题,也真有人尝试如何解决。经过多次的尝试,最终找到了解决的办法,用 VBS 代码。

打开一个空白的 EXCEL 表格,点击开发工具,点击 Visual Basic.

如果你的 EXCEL 表格中没有显示“开发工具”这个按钮,那么点击“文件”、点击“选项”、点击“自定义功能区”,勾选右侧“开发工具”前的小方框, 然后确定。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图15

点击 Visual Basic 后,点击 sheet1. 在右侧的空白窗口中复制粘贴以下代码:

Sub CAVToXLSX()

Dim fDir As String

Dim wB As Workbook

Dim wS As Worksheet

Dim fPath As String

Dim sPath As String

fPath = “C:\Users\Logistics-Ringchan\Downloads\2020_2022_DIVVY_CSV\”

sPath = “C:\Users\Logistics-Ringchan\Downloads\xlsx _by_code\”

fDir = Dir(fPath)

Do While (fDir <> “”)

If Right(fDir, 4) = “.csv” Or Right(fDir, 5) = “.csv” Then

On Error Resume Next

Set wB = Workbooks.Open(fPath & fDir)

‘MsgBox (wB.Name)

For Each wS In wB.Sheets

wS.SaveAs sPath & wB.Name & “.xlsx” _

, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Next wS

wB.Close False

Set wB = Nothing

End If

fDir = Dir

On Error GoTo 0

Loop

End Sub

需要注意的是:fPth =“C:…….\”是存放 csv 文件的文件夹位置,这些 csv 文件需要转换成 xlsx 工作簿格式;

sPath =“C:……\”是存放转换后得到的 xlsx 格式文件的文件夹位置。

要根据自己电脑的文件路径自行修改,最后的“\”不能丢掉。

粘贴后点击“运行“,耐心等待,在 xlsx 文件中会一个一个出现转换后的 EXCEL 文件。

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图16

这个代码相当于手动的打开 - 另存为的转换模式改为电脑自动运行。还是需要时间的,不是秒成。

代码来自知乎森眺的 回答 (https://www.zhihu.com/question/39234324/answer/284625834)

总体的思路启发来自百度经验的分享 https://jingyan.baidu.com/article/380abd0a032e681d91192c74.html

如何将CSV文件批量转换成EXCEL文件簿(.xlsx格式)插图17

代码是个共享的世界。在此记录下来,一是为了当天复习,二是为了日后复习和查询,三是为了帮助有同样困惑的人。

数据总算转换完成了,下面要开始 Clean 工作。

正文完
 
天天
版权声明:本站原创文章,由 天天 2023-07-21发表,共计2671字。
转载说明:

本文由 天天资讯网 整理发布,转载请注明出处.
版权声明:部分文章内容或图片来源于网络,我们尊重作者的知识产权。如有侵犯,请联系我们在第一时间删除。