“你要悄悄的学Python,然后惊艳所有人” 真的需要这样吗?现在我告诉你不用偷偷学Python,几条powershell命令就够了。
好久没有写博客了。之前本打算写PowerShell的系列文章,但是正巧在这段时间啊,有一个之前的同学问我关于一个Excel处理的问题。同时他还向我咨询了很多关于Python的一些知识啊。我还以为是他想转行当程序员,但是后来经过深入的这个了解之后,发现原来他是在工作过程当中遇到了一些Excel处理上的一些小问题。这其中涉及到Excel里边的一些分组啊排序啊,以及关键信息提取类似的一些操作。

作为一个PowerShell的老司机,我是知道怎么操作这个CSV的。
比如:使用 Import-csv 把数据导入内存中。

或者使用Export-CSV 把你计算的结果导出到CSV中。

但是对于Excel呢?PowerShell本身并没有内置任何命令可以直接操作它。

好在我们所处的时代并不缺乏大神。一个叫 Doug Finke 的牛人在Github 上发起了一个叫 ImportExcel 的项目。我在无意中通过《Introducing the PowerShell Excel Module》1 发现了这个项目。

下面直接来干货了:

Import-Excel 的前提条件

PowerShell V5 以及以上版本
并且安装ImportExcel不需要先行安装Excel,这点是不同于其它Excel相关的组件的。这样他就可以运行在Windows服务器上并不需要安装Excel。

安装步骤

通过命令安装

  • 只为当前登陆用户安装(推荐)
Install-Module ImportExcel -scope CurrentUser
  • 为机器上所有用户安装,这个需要管理员权限
Install-Module ImportExcel

手动安装

  • 下载安装包(.nupkg格式)
  • 修改后缀名为 .zip
  • 解压之后把相关文件放到如下目录中 C:\Program Files\WindowsPowerShell\Modules\ImportExcel\7.1.0
    目录如果不存在,创建之。版本号根据你自己下载的版本号创建。
    创建好之后如下:

测试安装是否成功

运行以下命令:

Get-Module -Name ImportExcel

如果显示以下结果说明安装成功了。

小试牛刀

现在我们可以像生成 .csv 文件一样生成 .xlsx 文件了。

#获取当前目录下面的所有文件/目录并导出成Excel表格
# -show 自动打开,如果当前机器上安装了Excel的话
Get-ChildItem . | Export-Excel c:\temp\files.xlsx -Show

加个饼图试一下

运行以下命令

Get-ChildItem | Where Extension | Export-Excel C:\temp\files1.xlsx -Show -PivotRows Extension -PivotData @{Extension="count"} -ChartType PieExploded3D# Where Extension  把没有后缀名或者目录排除掉
# -Show  导出之后直接打开Excel
# -PivotRows Extension  和  -PivotData @{Extension="count"}  这两个告诉Excel告诉代码如何生成Pivot表(统计不同扩展名的文件的个数)
# -ChartType 指定生成的饼图的类型 为 PieExploded3D

看下效果图:

  • 原始数据
  • 生成的饼图

怎么样? 是不是高大上?搬砖的你是不是立马想到了很多应用场景来解放你双手?
感受妹子们崇拜的目光吧 哈哈哈

处理已有Excel数据

只要之前用过Import-csv 的同学应该很容易就能入手,语法简直是一模一样啊。

我们先读取一下先前生成的表格试试:

 $files=Import-Excel .\files.xlsx$files | ft -AutoSize -Property Name,FullName,Extension


然后我们对这个表格稍微作一下处理

$files | %{ $_.Extension="$($_.Extension).txt"; $_ } |  Export-Excel c:\temp\files-processed.xlsx -Show

结束语

平时日常生活中很多地方会用到Excel处理比如数据统计,财务处理,多个Excel表合并,定期报表导出等等
如果仅仅是为了这些去学Python,学习成本还是蛮高的尤其是对没有任何变成经验的人来说,而用PowerShell来处理可能就是几条命令,最关键的是PowerShell现在是Windows内置的。
当然我在这里没有褒贬PowerShell/Python的意思,对我来讲适合自己的才是最好的。

我会定期更新PowerShell相关的系列文章帮你提高搬砖效率。
有什么需求的也可以直接私信我,我会把我所知道的分享给大家。

整理了部分近期发布的文章仅供大家参考:

  1. 为什么大神们的文章看起来那么酷?除了写的好还使用了生动的动图(gif)。一款【免费】的动图工具screentogif了解一下
  2. Powershell:使用PSCustomObject,序列化执行结果
  3. PowerShell: 为啥大神们的PowerShell窗口还有智能提示?因为他设置了这个
  4. PowerShell: 远程管理除了知道Invoke-Command,还应该掌握Enter-PSSession这个命令
  5. PowerShell: RDP管理服务器效率低下,使用invoke-command同时维护多台服务器不再难
  6. PowerShell:用原生PowerShell就能解决访问web资源时的ADFS认证问题
  7. PowerShell:不需要学Python,使用powershell也能处理Excel提高办公效率
  8. PowerShell:作为一个PowerShell菜鸟,如何快速入门?掌握这些就够了

  1. Introducing the PowerShell Excel Module – Dr Script ↩︎

PowerShell: 如何使用powershell处理Excel相关推荐

  1. PowerShell: 作为一个PowerShell菜鸟,如何快速入门?掌握这些就够了

    PowerShell 一 初级篇 1. 我为什么要写PowerShell? 2. 开始我们的PowerShell之旅 a) 打开PowerShell >使用鼠标打开 >使用键盘打开 b) ...

  2. Windows PowerShell:Windows PowerShell的简介、入门、使用方法之详细攻略

    Windows PowerShell:Windows PowerShell的简介.入门.使用方法之详细攻略 目录 Windows PowerShell的简介 PowerShell VS Unix Sh ...

  3. 初识powershell、nuget powershell 调试

    初识powershell.nuget powershell 调试 补充 此文仅当做powershell的初步认识体验,关于nuget包里此脚本的使用官方已在vs2017停止支持,请看此文文末 前言 老 ...

  4. anaconda prompt和cmd和powershell和anaconda powershell prompt和git bash有什么区别

    anaconda prompt和cmd和powershell和anaconda powershell prompt和git bash有什么区别? anaconda prompt和cmd和powersh ...

  5. PowerShell:如何用PowerShell创建WinForm窗体?-在PowerShell中使用GUI界面

    从印度小哥那里受到启发,PowerShell不止可以做批处理,自动化.还能做界面做GUI,也能实现很好的交互.因为PowerShell是可以和.Net 程序无缝集成的.所以.Net能用的东西在Powe ...

  6. PowerShell_5_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

    据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件 ...

  7. powershell禁用计算机,PowerShell 因为在此系统中禁止执行脚本 解决方法

    在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing". ...

  8. powershell awk_谈谈 PowerShell

    万事万物,有始有终.直从萌芽拔,高自毫末始. 所谓的 Shell,无非是应用程序与操作系统内核进行交互的一个中间程序而已.我本人玩电脑也有很久一阵子了,最开始接触到的就是Windows 7 操作系统, ...

  9. 从零开始学PowerShell(9)创建PowerShell对象

    我们之前有一篇文章写过如何获取对象的信息,但是从没有说过如何创建一个PowerShell对象.正巧也看到很多刚学PowerShell的朋友问起这个问题,今天就来说一说如何创建PowerShell对象. ...

  10. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP

    <Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...

最新文章

  1. sqlmap 跑access_sqlmap注入Access
  2. pom.xml中的常用依赖包总结
  3. 探索Android中的Parcel机制(上)
  4. sob攻略超详细攻略_重庆旅游攻略~超详细攻略大全!必看篇!!
  5. Fibonacci数列第n项的log(n)算法
  6. 页面间的跳转,打开,关闭小技巧.
  7. linux--GD库安装
  8. 按季度分类汇总_2019年纯碱行业相关上市公司季报 与半年报情况汇总
  9. 电脑上怎么做pdf文件_图片怎么输出为PDF文件?两种办法教你,手机电脑都能转...
  10. 张震博士:SDT是未来安防发展方向
  11. c语言中用文件处理数据,C语言文件处理 -C语言从文件中读写格式化数据
  12. crc java_java实现CRC16 MODBUS校验算法
  13. z01、z02.....怎么解压缩
  14. java类的实例参数传递_获取我正在通过参数传递的相同Java类实例
  15. php路径伪静态化,URL地址伪静态化
  16. 使用Github pages+jekyll搭建自己的博客(windows版)
  17. 无穷大常量0x7fffffff 0x3fffffff 0x3f3f3f3f
  18. deeplinux 热点_在深度deepin linux系统中同时开启wifi与热点的办法
  19. stepmania谱面下载、安装、转谱,音游相关 osu etterna
  20. 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪

热门文章

  1. 《大学章句》光剑续编
  2. DB9串口和RJ45接线图
  3. iphone 3G 刷机到3.12
  4. Android ImageButton示例
  5. 抓包软件 Fiddler 了解一下?
  6. 未解决:关于下载的ipython notebook打开的时候遇到问题的解决方法: NotJSONError(“Notebook does not appear to be JSON
  7. HP电脑的增霸卡功能操作详解
  8. Python 爬取zw年鉴
  9. 淘淘商城系列——Redis的安装
  10. Java关键字与保留字