Powershell脚本(1)——分表合表

wils
wils

创作者俱乐部成员

前面介绍了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脚本,把日常的重复工作自动化是非常爽的,但也不用太深入,不求甚解能用就好😁

广东省
浏览 470
收藏
7
分享
7 +1
4
+1
全部评论 4
 
Siserly
留个脚印学习
· 江苏省
回复
 
柏安
牛人,学习了
· 福建省
回复
 
好家伙
学习了,关于拆分及合并,wps本身也有很多绝活,比如拆分功能,可以拆分成独立N个工作薄,也可以拆分成N个工作表,如下:
· 云南省
1
回复
wils
wils

创作者俱乐部成员

是的,wps做的很好用,这里是个铺垫,后面要和web接口结合起来用୧꒰•̀ᴗ•́꒱୨
· 海南省
回复