1、实验目的:CSV文件因为是纯文本格式,所以在不同的电子设备和操作系统上都能够被读取和编辑。而XLSX文件则因为使用XML标准进行数据存储,在不同的电子设备和操作系统上可能会出现兼容性问题,例如,某些Windows电脑上会出现编辑器无法识别特定格式的问题(CSV和XLSX文件格式的区别_csv和xlsx的区别_qq_44591229的博客-优快云博客)。此外,在R语言的导入数据过程中对于xlsx文件的读取比CSV格式复杂得多,需要install和Library相应的packages,而读取CSV格式数据则只需要键入“read.csv()”即可,因此直接批量转为CSV也是一种不错的选择。
2、软件:Microsoft Office EXCEL 2019
3、操作系统:Windows 10
4、操作步骤:
第一步:将多个XLSX格式的文件放于同一文件夹下
第二步:新建一个空白文件夹存放转换格式后的文件
第三步:打开一个空白excel文档,准备输入批量代码
打开后
代码内容:
Sub SaveToCSVs()
Dim fDir As String
Dim wB As Workbook
Dim wS As Worksheet
Dim fPath As String
Dim sPath As String
fPath = "D:\April\"
sPath = "D:\April\CSV\"
fDir = Dir(fPath)
Do While (fDir <> "")
If Right(fDir, 4) = ".xls" Or Right(fDir, 5) = ".xlsx" 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 & ".csv", xlCSV
Next wS
wB.Close False
Set wB = Nothing
End If
fDir = Dir
On Error GoTo 0
Loop
End Sub
注意:(1)其中的fpath和spath必须以“\”结尾
(2)运行代码后空白文档会进行闪烁,这取决于待转换的文件个数。
第三步:整理文件
输出后的文件格式为:文件名.xlsx.csv
我们习惯将文件名批量修改为:文件名.csv
批量修改文件名的代码如下:
@echo off& setlocal enabledelayedexpansion
for /f "delims=" %%1 in ('dir /a /b') do (set wind=%%1
ren "%%~1" "!wind:.xlsx=!")
注意:需要把代码写在“.txt”的文本文档中后,把后缀改为“.bat”,双击运行此bat文件即可。
结果: