Powershell操作Excel简析

一、Powershell简介

powershell是Windows系统中自带的一个shell命令行工具,它是专为系统管理员设计的新Windows命令行shell,它包括交互式提示和脚本环境。PowerShell定义很多命令与操作系统,特别是与文件系统交互,能够启动应用程序,甚至操纵应用程序;PowerShell允许将几个命令组合起来放到文件里执行,实现文件级的重用,也就是说有脚本的性质;PowerShell能够充分利用.Net类型和COM对象,来简单地与各种系统交互,完成各种复杂的、自动化的操作。
从Windows7系统开始,系统自带powershell,使用win+r快捷键打开运行窗口,输入powershell即可打开。Windows系统中还自带cmd命令行工具,而从发展趋势看,cmd逐渐会被powershell取代。

二、Powershell打开Excel文件

Excel程序属于com组件中的程序包,在powershell中需要先创建Excel程序对象,然后进行操作,其中各个变量不需要预先定义,代码如下:

$xlFixedFormat = "Microsoft.Office.Interop.Excel.xlFixedFormatType" -as [type] #设置excel文件类型
$objExcel = New-Object -ComObject excel.application #创建excel对象
$objExcel.visible = $false 
$path = "C:\Users\Administrator\Desktop\test.xls" #待打开文件
$objExcel.workbooks.Add()#创建新的工作簿
$workbook = $objExcel.workbooks.open($path) #获取工作簿对象
$ws=$workbook.WorkSheets.item(1)#获取工作表对象,也可以通过item("Sheet1")
$workbook.activate()#激活工作簿
$ws.activate()#激活工作表
$workbook.save()#保存工作簿
$workbook.saveas("C:\Users\Administrator\desktop\save.xlsx")#另存工作簿
$workbook.close()#关闭工作簿
$objExcel.Quit()#退出Excel程序

三、Powershell导出PDF文件

将Excel导出PDF代码如下:

$workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, "C:\Users\Administrator\desktop\save.pdf")

四、Powershell选择单元格区域

选择单元格区域,使用Range,Cells和rows、columns来实现,代码如下:

$ws.cells.item(1,2)#行列索引只能为整数
$ws.range("b2")#选择单个单元格
$ws.range("b2","d5")#选择从B2到D5的一块区域
$ws.range("1:1").select()#选择第一行
$ws.range("b:d").select()#选择第二列到第四列
$ws.rows.item(3).select()#选择第三行
$ws.columns.item(3).select()#选择第三列

五、Powershell对单元格操作

代码如下:

$ws.cells.item(2,1)=”hello”#设置值
$ws.cells.item(2,1).value2=”hello”#设置值
$ws.cells.item(2,1).select()#选中单元格
$ws.cells.item(2,1).copy()#复制单元格
$ws.cells.item(2,1).pastespecial(-4163)#粘贴单元格
$r1=$ws.range("b2","d5").find('hello')#区域搜索包含hello的单元格
$row=$r1.row#搜索到的单元格的行
$column=$r1.column#搜索到的单元格的列
$ws.cells.item(2,1).font.Size = 9#设置字体大小
$ws.cells.item(2,1).Name = "Times New Roman"#设置字体名称
$ws.cells.item(2,1).borders.LineStyle = $LineStyle::xlContinuous#设置单元格边框
$ws.cells.item(2,1).font.bold = "true"#设置加粗
$ws.cells.item(2,1).font.italic = $true#设置倾斜
$ws.cells.item(2,1).NumberFormat = "#,##0.00"#设置数字格式

六、总结

最近博客分享了几篇C#操作Excel、VBA操作Excel和Powershell操作Excel的文章,其操作原理都是调用com对象对Excel进行操作,因此语法和函数参数都是相同的,只是由于编程语言的不同,细节存在一些差异,在实际使用要注意区分。

参考文档

powershell操作excel
Powershell之Excel操作-基本操作
查找excel文档中的所有值,并使用powershell将它们添加到数组中
如何使用PowerShell来复制多个Excel工作表,并作出新的
Save a Microsoft Excel Workbook as a PDF File by Using PowerShell
被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值