R语言︱用excel VBA把xlsx批量转化为csv格式
在上面的尝试已经发现,xlsx本身就是这个复杂问题的最根本原因。与之相反,R对csv等文本格式支持的很好,而且有fread这个神器,要处理一定量级的数据,还是得把xlsx转化为csv格式。
以此为思路,在参考了两个资料后,我成功改写了一段VBA,可以选中需要的xlsx,然后在其目录下新建csv文件夹,把xlsx批量转化为csv格式。
代码如下:
[plain]view plaincopyprint?
Sub getCSV()
'这是网上看到的xlsx批量转化,而改写的一个xlsx批量转化csv格式
'1)批量转化csv参考:http://club.excelhome.net/thread-1036776-2-1.html
'2)创建文件夹参考:http://jingyan.baidu.com/article/f54ae2fcdc79bc1e92b8491f.html
'这里设置屏幕不动,警告忽略
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim data As Workbook
'这里用GetOpenFilename弹出一个多选窗口,选中我们要转化成csv的xlsx文件,
file = Application.GetOpenFilename(MultiSelect:=True)
'用LBound和UBound
For i = LBound(file) To UBound(file) Workbooks.Open Filename:=file(i)
Set data = ActiveWorkbook
Path = data.Path
'这里设置要保存在目录下面的csv文件夹里,之后可以自己调
'参考了里面的第一种方法
On Error Resume Next
VBA.MkDir (Path & "\csv")
With data
.SaveAs Path & "\csv\" & Replace(data.Name, ".xlsx", ".csv"), xlCSV
.Close True
End With
Next i
'弹出对话框表示转化已完成,这时去相应地方的csv里查看即可
MsgBox "已转换了" & (i-1) & "个文档"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
操作很简单:
把代码复制进excel的vba编辑器里,然后运行getcsv这个宏,会跳出一个窗口,要求选择你要转化的xlsx文件。(可多选)
选中以后,等一段时间,再回到xlsx文件下,会多一个csv文件夹,里面就是我们要导入R的文本文件了。
这个方法的好处是:
1、操作简单,直接依托于excel的VBA操作,不用配置Java环境,之后沟通成本/换电脑成本小
2、特别适用于有一定数据量,但是数据格式整齐的文件,譬如从某数据端读入的数据。用fread还可以控制读取的行(skip=NNN),代码写入整洁方便。就算有一些异行数据,也可以事先用VBA进行操作,简单方便。
——————————————————————————————————————————————
读入R数据库可以用lappy来读取:
[plain]view plaincopyprint?
#lapply读取法
filenames <- list.files("C:/Users/a.csv", pattern = ".csv",full.names = TRUE) #变成list格式
#没有full.names = TRUE,都会出现cannot open file: No such file or directory
name=function(x) {
read.csv(x,header=T)
}
datalist <- lapply(filenames,name) #filenames执行name函数
其中需要强调一点WPS excel怎么加载宏
1、WPS excel本身是没有宏功能的,需要自己加载;
2、加载一个.exe,安装好了,即可。
就需要下载一个“wps的vba模块”,
加载好这一个就行了,
然后就是简单输入,就可以调用宏了。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
完全靠数据决策,真的靠谱吗? 最近几年,“数据驱动”成了商界最火的关键词之一,但靠数据就能走天下?其实不然!那些真正成功 ...
2025-01-09SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODB ...
2025-01-09在如今这个信息爆炸的时代,数据已然成为企业的生命线。无论是科技公司还是传统行业,数据分析正在深刻地影响着商业决策以及未来 ...
2025-01-08“数据为王”相信大家都听说过。当前,数据信息不再仅仅是传递的媒介,它成为了驱动经济发展的新燃料。对于企业而言,数据指标体 ...
2025-01-07在职场中,当你遇到问题的时候,如果感到无从下手,或者抓不到重点,可能是因为你掌握的思维模型不够多。 一个好用的思维模型, ...
2025-01-06在现代企业中,数据分析师扮演着至关重要的角色。每天都有大量数据涌入,从社交媒体到交易平台,数据以空前的速度和规模生成。面 ...
2025-01-06在职场中,许多言辞并非表面意思那么简单,有时需要听懂背后的“潜台词”。尤其在数据分析的领域里,掌握常用术语就像掌握一门新 ...
2025-01-04在当今信息化社会,数据分析已成为各行各业的核心驱动力。它不仅仅是对数字进行整理与计算,而是在数据的海洋中探寻规律,从而指 ...
2025-01-03又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-03在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-03在数据分析的江湖里,有两个阵营总是争论不休。一派信奉“大即是美”,认为数据越多越好;另一派坚守“小而精”,力挺质量胜于规 ...
2025-01-02数据分析是一个复杂且多维度的过程,从数据收集到分析结果应用,每一步都是对信息的提炼与升华。可视化分析结果,以图表的形式展 ...
2025-01-02在当今的数字化时代,数据分析师扮演着一个至关重要的角色。他们如同现代企业的“解密专家”,通过解析数据为企业提供决策支持。 ...
2025-01-02数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪 ...
2024-12-31数据分析,听起来好像是技术大咖的专属技能,但其实是一项人人都能学会的职场硬核能力!今天,我们来聊聊数据分析的核心流程,拆 ...
2024-12-31提到数据分析,你脑海里可能会浮现出一群“数字控”抱着电脑,在海量数据里疯狂敲代码的画面。但事实是,数据分析并没有你想象的 ...
2024-12-31关于数据分析师是否会成为失业高危职业,近年来的讨论层出不穷。在这个快速变化的时代,技术进步让人既兴奋又不安。今天,我们从 ...
2024-12-30数据分析师在现代企业中扮演着关键角色,他们的工作内容不仅丰富多样,还对企业的决策和发展起着重要的作用。正如一个经验丰富的 ...
2024-12-29数据分析师的能力要求 在当今的数据主导时代,数据分析师的角色变得尤为重要。他们不仅需要具备深厚的技术背景,还需要拥有业务 ...
2024-12-29随着技术的飞速发展与行业的持续变革,不少人心中都存有疑问:到了 2025 年,数据分析师还有前途吗?给你分享一篇阿里P8大佬最近 ...
2024-12-29