PowerShell: 如何使用powershell处理Excel
序
“你要悄悄的學(xué)Python,然后驚艷所有人” 真的需要這樣嗎?現(xiàn)在我告訴你不用偷偷學(xué)Python,幾條powershell命令就夠了。
好久沒(méi)有寫(xiě)博客了。之前本打算寫(xiě)PowerShell的系列文章,但是正巧在這段時(shí)間啊,有一個(gè)之前的同學(xué)問(wèn)我關(guān)于一個(gè)Excel處理的問(wèn)題。同時(shí)他還向我咨詢(xún)了很多關(guān)于Python的一些知識(shí)啊。我還以為是他想轉(zhuǎn)行當(dāng)程序員,但是后來(lái)經(jīng)過(guò)深入的這個(gè)了解之后,發(fā)現(xiàn)原來(lái)他是在工作過(guò)程當(dāng)中遇到了一些Excel處理上的一些小問(wèn)題。這其中涉及到Excel里邊的一些分組啊排序啊,以及關(guān)鍵信息提取類(lèi)似的一些操作。
作為一個(gè)PowerShell的老司機(jī),我是知道怎么操作這個(gè)CSV的。
比如:使用 Import-csv 把數(shù)據(jù)導(dǎo)入內(nèi)存中。
或者使用Export-CSV 把你計(jì)算的結(jié)果導(dǎo)出到CSV中。
但是對(duì)于Excel呢?PowerShell本身并沒(méi)有內(nèi)置任何命令可以直接操作它。
好在我們所處的時(shí)代并不缺乏大神。一個(gè)叫 Doug Finke 的牛人在Github 上發(fā)起了一個(gè)叫 ImportExcel 的項(xiàng)目。我在無(wú)意中通過(guò)《Introducing the PowerShell Excel Module》1 發(fā)現(xiàn)了這個(gè)項(xiàng)目。
下面直接來(lái)干貨了:
Import-Excel 的前提條件
PowerShell V5 以及以上版本
并且安裝ImportExcel不需要先行安裝Excel,這點(diǎn)是不同于其它Excel相關(guān)的組件的。這樣他就可以運(yùn)行在Windows服務(wù)器上并不需要安裝Excel。
安裝步驟
通過(guò)命令安裝
- 只為當(dāng)前登陸用戶(hù)安裝(推薦)
- 為機(jī)器上所有用戶(hù)安裝,這個(gè)需要管理員權(quán)限
手動(dòng)安裝
- 下載安裝包(.nupkg格式)
- 修改后綴名為 .zip
- 解壓之后把相關(guān)文件放到如下目錄中 C:\Program Files\WindowsPowerShell\Modules\ImportExcel\7.1.0
目錄如果不存在,創(chuàng)建之。版本號(hào)根據(jù)你自己下載的版本號(hào)創(chuàng)建。
創(chuàng)建好之后如下:
測(cè)試安裝是否成功
運(yùn)行以下命令:
Get-Module -Name ImportExcel如果顯示以下結(jié)果說(shuō)明安裝成功了。
小試牛刀
現(xiàn)在我們可以像生成 .csv 文件一樣生成 .xlsx 文件了。
#獲取當(dāng)前目錄下面的所有文件/目錄并導(dǎo)出成Excel表格 # -show 自動(dòng)打開(kāi),如果當(dāng)前機(jī)器上安裝了Excel的話(huà) Get-ChildItem . | Export-Excel c:\temp\files.xlsx -Show加個(gè)餅圖試一下
運(yùn)行以下命令
Get-ChildItem | Where Extension | Export-Excel C:\temp\files1.xlsx -Show -PivotRows Extension -PivotData @{Extension="count"} -ChartType PieExploded3D# Where Extension 把沒(méi)有后綴名或者目錄排除掉 # -Show 導(dǎo)出之后直接打開(kāi)Excel # -PivotRows Extension 和 -PivotData @{Extension="count"} 這兩個(gè)告訴Excel告訴代碼如何生成Pivot表(統(tǒng)計(jì)不同擴(kuò)展名的文件的個(gè)數(shù)) # -ChartType 指定生成的餅圖的類(lèi)型 為 PieExploded3D看下效果圖:
- 原始數(shù)據(jù)
- 生成的餅圖
怎么樣? 是不是高大上?搬磚的你是不是立馬想到了很多應(yīng)用場(chǎng)景來(lái)解放你雙手?
感受妹子們崇拜的目光吧 哈哈哈
處理已有Excel數(shù)據(jù)
只要之前用過(guò)Import-csv 的同學(xué)應(yīng)該很容易就能入手,語(yǔ)法簡(jiǎn)直是一模一樣啊。
我們先讀取一下先前生成的表格試試:
$files=Import-Excel .\files.xlsx$files | ft -AutoSize -Property Name,FullName,Extension
然后我們對(duì)這個(gè)表格稍微作一下處理
結(jié)束語(yǔ)
平時(shí)日常生活中很多地方會(huì)用到Excel處理比如數(shù)據(jù)統(tǒng)計(jì),財(cái)務(wù)處理,多個(gè)Excel表合并,定期報(bào)表導(dǎo)出等等
如果僅僅是為了這些去學(xué)Python,學(xué)習(xí)成本還是蠻高的尤其是對(duì)沒(méi)有任何變成經(jīng)驗(yàn)的人來(lái)說(shuō),而用PowerShell來(lái)處理可能就是幾條命令,最關(guān)鍵的是PowerShell現(xiàn)在是Windows內(nèi)置的。
當(dāng)然我在這里沒(méi)有褒貶PowerShell/Python的意思,對(duì)我來(lái)講適合自己的才是最好的。
我會(huì)定期更新PowerShell相關(guān)的系列文章幫你提高搬磚效率。
有什么需求的也可以直接私信我,我會(huì)把我所知道的分享給大家。
整理了部分近期發(fā)布的文章僅供大家參考:
Introducing the PowerShell Excel Module – Dr Script ??
總結(jié)
以上是生活随笔為你收集整理的PowerShell: 如何使用powershell处理Excel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python excel对比_Pytho
- 下一篇: office 2010安装包