Powershell脚本(1)——分表合表
创作者俱乐部成员
前面介绍了linux shell里很多可以用于表格的实用功能。
其实windows自带的powershell,在表格处理方面,也有很多方便、强大的功能值得尝试。
下面介绍简单的分表、合表:
一般来说,按住shift在文件夹里点右键,可以在此处打开powershell窗口。
如果不行,可以按win+r,运行powershell,然后cd 目标文件夹,转到目标文件夹。
这里注意,一切操作都先要确定,已经将当前工作目录转到你需要的目录,别写了一堆代码,处理了错误的文件夹,数据无价,一定小心操作。。。
分表的代码:
💡 | Import-Excel .\a.xlsx | Group-Object 供应商 | %{$_.group | Export-Excel ($_.name+".xlsx")} |
powershell的代码比较好懂,基本就是字面意思
import-excel是从xlsx导入表格
group-object xxx,是按照xxx分组
%{}是foreach的缩写,是对每个分组进行处理
$_.group | export-excel xxx,是把分组的内容存入xlsx,形成新表
新表的名称是$_.name加上.xlsx后缀,其中$_.name是前面分组那一步供应商的名称
然后是合表
合表的代码:
📌 | dir *.xlsx | %{Import-Excel $_.name} | Export-Excel a.xlsx |
dir列出当前目录里的xlsx
%{}是foreach的缩写,对每个xlsx进行操作
import-excel是从当前这个xlsx导入表,但因为foreach,所以表里的数据被合到一起
export-excel导出结果到a.xlsx
win10以上系统自带5.1版本的powershell,也可以下载7.x新版pwsh
win7自带的是2.0版,很多命令的参数不同,需要兼容时得改变写法,有点麻烦
上面的用法,还需要安装importexcel模块,安装命令是Install-Module ImportExcel
总的来说,powershell操作表格还是很方便的,一方面可以用importexcel这种基于c# epplus的模块,另一方面,也可以用com对象ket.application进行操作。
代码写起来也很短,就像pswritehtml模块里介绍的,powershell里的工具,致力于"即使你不懂html,也可以通过简单的命令创建复杂的html页面"
powershell命令可以把常用的操作变得非常简单,但有时也会把复杂的操作弄的更麻烦,比如它的管道传递的是对象,平时用非常方便,但需要传递bytes时它又会自作聪明的将数据解码,且这种管道的速度有点慢。
而且,wps里也已经把分表、合表的操作做的很完善了,但powershell既然是脚本,这些操作就可以和网络接口、文件夹事件连起来用,还是有必要了解一下的
所以,写一点powershell脚本,把日常的重复工作自动化是非常爽的,但也不用太深入,不求甚解能用就好😁
创作者俱乐部成员