豆子的兼职是澳洲代购(提供澳洲直邮或者国内供货,需要的可以联系),很多时候需要当客服给客人发送快递单号,这些单号都是由仓库打包人员每天统计在EXCEL里面发送给我的。
比如,我有很多xlsx快递单号文档,格式大概是这样的
有的时候,为了查找某个订单号,需要查看QQ聊记录找到对应的发货单记录 然后还得找到当天对应的EXCEL表格,非常麻烦,往往为了查询一个单号需要折腾2分钟。为了解决这个查找的问题,豆子用PowerShell写了个简单的脚本进行处理。
首先一个好消息是PS5已经有很多现成的Excel模块了,因此再也不用通过ComObject来配置EXCEL了。毕竟ComObject属于一种过时的技术,而Powershell是基于.Net开发的,微软本身并不推荐使用任何方式来自动化Office,而且不会支持因此而出现的各种bug。
我使用的是下面这个模块,他的原理是调用.Net对应的dll文件,因此效率和稳定性都远远超过ComObject的对象。
https://www.powershellgallery.com/packages/ImportExcel/2.2.4
PowerShell5 里面可以直接下载安装, 安装之后就可以直接调用了。
1
2
|
Install-Module -name importExcel
|
基本思路很简单,递归地查询xlsx文件所在的目录,导入所有的文件,然后根据条件过滤即可。 非常简单的脚本 但是节省了我不少的时间。
脚本如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
function
Get-DeliveryInfo
{
[
CmdletBinding
()]
Param
(
# Param1 help description
[string]
$user
,
[string]
$path
=
"c:\users\yli\Documents\出库记录\xlsx\*.xlsx"
,
[string]
$address
=
"*"
)
begin
{}
process
{
$result
=
Get-ChildItem
$path
-recurse|
Import-Excel
|Where
-Object {(
$_
.姓名
-like
"*$user*"
)
-and
(
$_
.地址
-like
"*$address*"
)}
}
end
{
$result
}
}
|
比如说看看发往广西的姓陈的客户
成功!
为了方便媳妇等非IT人士使用,我又做了个图像界面
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1784014,如需转载请自行联系原作者