xlsx数据处理01

之前一直是处理后台数据为主,接触的都是Linux和UNIX环境,对文件的处理一般都用shell脚本。然而目前工作中会大量用到xlsx,对一个xlsx小白来说的我显得有点力不从心,毕竟相对以往的工作经验来说,它是我的鸡肋,它不难,但是要想用好它也并不是那么容易,我很驾驭它,然后不知道是不是因为它比较常用,让我反而不知道从和着手,对写xlsx的函数也有点惧怕。但是技术毕竟是死的,只要付出时间付出精力,总归会有收获,最近学了一些小技巧,为了方便后面自己查询使用故在此记录,也希望能得到各路高手的提点及修正。

本次讲述的内容共有三个知识点:

1、合并.csv文件    2、如何批量将xlsx文件转换成csv,无需一个一个打开后另保存  3、如何在xlsx中导入csv文件,且如何刷新得到最新的数据

a.如何将多个同结构的.csv文件合并成一个

打开文件所在的目录,在路径里输入cmd并按回车,就能切换到命令行界面,并且当前所在的路径正式当时打开的目录,输入命令:copy *.csv input.csv   会把当前目录下所有的csv文件合并到input.csv  注:合并的结果文件不会去除重复数据,如果每个csv文件都有head,那就要将多余的数据去除

xlsx数据处理01

xlsx数据处理01

b. a步骤中所有的文件都是csv,但是我们工作当中很多时候都是xlsx,那如何将xlsx转化为csv呢,我找到一个VBS脚本,只要将那个脚本copy到对应的目录中,并且双击它,那当前目录中所有的xlsx文件都是自动copy一份转化成csv的文件,如下图,待xlsx文件全部转化为csv文件后即可执行a步骤中的操作,将所有数据合并到一个csv文件中:

VBS脚本:

Dim fso: set fso = CreateObject("Scripting.FileSystemObject")
' directory in which this script is currently running

CurrentDirectory = fso.GetAbsolutePathName(".")

Set folder = fso.GetFolder(CurrentDirectory)

For each file In folder.Files

If fso.GetExtensionName(file) = "xlsx" Then

pathOut = fso.BuildPath(CurrentDirectory, fso.GetBaseName(file)+".csv")

Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(file)
oBook.SaveAs pathOut, 6
oBook.Close False
oExcel.Quit
End If

Next

xlsx数据处理01

c. xlsx可以导入csv数据,打开xlsx,在工具栏里选择DATA, 点击xlsx数据处理01, 选择需要导入的csv文件,此例中数据源选择的是b步骤中合并的input.csv, 按照自己导入的需要选择合适的属性,最后点击finish, 如果input.csv数据有变动,只需将之前的input.csv文件覆盖为最新的数据,然后点击xlsx数据处理01就可以了,无需一步一步的导入数据,很方便,在查看数据的时候,如果要定位到某一行,可以直接按F5,然后输入需要定位的单元格,如A219就ok了。

xlsx数据处理01

xlsx数据处理01

xlsx数据处理01

xlsx数据处理01