您的位置:首页 > 运维架构 > Shell

Office Powershell Cookbook (Office powershell 常见操作)

2020-01-15 09:20 1616 查看
Office Powershell Cookbook (Office powershell 常见操作)
2011年06月27日
  http://sds07s7.blogbus.com/logs/62536662.html
  最近涉及的东西很多关联到office的应用,而自从vbs转移到powershell作为主要的脚本之后,使用Powershell操作office对自己来说已经有很大的需求。
  下面把自己收集到的一些资源总结一下 (个人记性不好,只能作记录) Excel 部分
  翻译的OldDog的Excel Powershell Cookbook
  如何创建一个Excel 应用程序对象?
  $xl = new-object -comobject excel.application
  脚本小子Scripting Guys 有一个栏目专门介绍office powershell的
  __________________________________________________ ______________________
  默认创建的Excel 应用程序对象是在后台的,它默认不显示程序的主窗口出来,如何让它显示出来?
  $xl.Visible = $true
  __________________________________________________ ______________________
  创建一个Excel 文件,也就是我们的Excel 文档(题外话:Excel 应用程序可以打开多个workbook,workbook 包含多个sheet,sheel包含多个cell
  $wb = $xl.Workbooks.Add()
  __________________________________________________ ______________________
  添加一个工作薄worksheet?
  $xl = new-object -comobject excel.application
  $xl.Visible = $true
  #打开ado_object_models.xls Excel 文档
  $wb = $xl.Workbooks.Open("C:\Scripts\ado_object_model.xl s")
  #添加一个工作薄
  $ws = $xl.Sheets.Add()
  __________________________________________________ ______________________
  如何激活一个工作薄? 也就是如何选中某个工作簿让其处于我们可以操作的状态。
  # 创建Excel 应用程序对象
  $xl = new-object -comobject Excel.Application
  # 显示Excel 软件的主界面窗口
  $xl.visible = $true
  # 打开一个Excel文档
  $wb = $xl.workbooks.open("C:\Scripts\PowerShell\test.xls ")
  # 获取Excel 文档的工作薄
  $ws1 = $wb.worksheets | where {$_.name -eq "sheet1"} #
  $comments = @'
  Script name: Add-Validation.ps1
  Created
  $range4.font.italic="$true"
  $range4.font.bold=$True
  $range4.font.size=10
  $range4.font.name="comic Sans MS" # now format a Range of cells $ws.Range("D1:F5").NumberFormat = "#,##0.00" __________________________________________________ ____________________ 向Excel 单元格添加注释(Comment)
  $xll = New-Object -com Excel.Application
  $xl.visible = $True
  $wb = $xl.Workbooks.Add()
  $ws = $wb.Worksheets.Item(1)
  $ws.Cells.Item(1,1) = "A value in cell A1."
  [void]$ws.Range("A1").AddComment()
  [void]$ws.Range("A1").comment.Visible = $False
  [void]$ws.Range("A1").Comment.text("OldDog: `r this is a comment")
  [void]$ws.Range("A2").Select
  #The 'r adds a line feed after the comment's author. This is required!
  __________________________________________________ ______________________
  如何进行选择性复制和粘贴?
  
  $xlPasteValues = -4163 # Values only, not formulas
  $xlCellTypeLastCell = 11 # to find last used cell
  $used = $ws.usedRange
  $lastCell = $used.SpecialCells($xlCellTypeLastCell)
  $row = $lastCell.row
  $range = $ws.UsedRange
  [void]$ws.Range("A8:F$row").Copy()
  [void]$ws.Range("A8").PasteSpecial(-4163)
  关于Excel powershell的 其他的一些 经验和总结,其实看powershell office的代码和普通的Vba代码没有太大的区别,偶尔可能因为语法的不同有所出入,但是函数和属性都是相同的,因此在我们不知道powershell如何写的时候,可以使用word ,Excel中的录制宏功能,录制下vba代码看看,还有如果想了解office对象可用的属性和方法,那么office本身带的对象浏览器(在VBa编辑器的环境中按F2即可调出)也非常有用,你可以查看一些常量的值,然后你在powershell中定义这些常量。
  • 点赞
  • 收藏
  • 分享
  • 文章举报
iteye_19802 发布了19 篇原创文章 · 获赞 0 · 访问量 479 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: