• 如何创建一个Excel 应用程序对象?

    $xl = new-object -comobject excel.application
    
  • 默认创建的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.xls")#添加一个工作薄
    $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"} #<——- Selects sheet 1
    $ws2 = $wb.worksheets | where {$_.name -eq "sheet2"} #<——- Selects sheet 2
    $ws3 = $wb.worksheets | where {$_.name -eq "sheet3"} #<——- Selects sheet 3# 激活sheet1
    $ws1.activate()Start-Sleep 1# 激活 sheet 2
    $ws2.activate()Start-Sleep 1# 激活 sheet 3$ws3.activate()
    

  • 如何更改活动单元格的值?(活动单元格,也就是当前处于选中状态,我们可以对其进行操作的单元格)

    $xl.ActiveCell.Value2 = "x"
    

  • 如何更改某个具体单元格的值?

    $xl.activesheet.cells.item(2,1).value2=”y”$xl.cells.item(2,1).value2=”y”$xl.ActiveSheet.Range("B1").Value2 = "y"
    

  • 如何获得excel文档的名称?

    $wb.Name
    $xl.activeWorkBook.name
    

  • 如何通过行号,列号来枚举相应的所有单元格的值?

    $xl = new-object -comobject excel.application
    $xl.Visible = $true
    $wb = $xl.Workbooks.Add()
    $ws = $wb.Worksheets.Item(1)#设置前11行,每行第一个单元格的值为1–〉11
    for ($row = 1; $row -lt 11; $row++)
    {$ws.Cells.Item($row,1) = $row}
    

  • 如何列举某个文件夹下的所有文件,然后把列表导入Excel?

    $xl = new-object -comobject excel.application
    $xl.Visible = $true
    $wb = $xl.Workbooks.Add()
    $ws = $wb.Worksheets.Item(1)$row = 1
    #获取当前文件夹下的所有文件以及文件夹对象
    $s = dir$s | foreach -process `
    { `#输出每个文件或者文件夹的名称到Excel$ws.Cells.Item($row,1) = $_; `$row++ `}
    

  • 获取当前的系统进程列表然后输出到Excel?

    # 下面函数用来释放Excel的应用程序的对象,否则你使用Excel对象的quit()方法
    # 之后,虽然关闭了Excel的界面窗口,但是 相应的Excel进程还在进程列表里
    # 面,而且没有释放其占有的内存和资源,使用下面函数将释放Com对象,并
    # 且调用.net的垃圾收集器进行资源回收。以 后的office Powershell中会经常使
    # 用该函数用来释放office的application 对象。function Release-Ref ($ref) {[System.Runtime.InteropServices.Marshal]::ReleaseComObject($ref)
    [System.GC]::Collect()
    [System.GC]::WaitForPendingFinalizers()}# —————————————————–$xl = New-Object -comobject Excel.Application$xl.Visible = $True$wb = $xl.Workbooks.Add()
    $ws = $wb.Worksheets.Item(1)
    $range = $ws.Cells.Item(1,1)$row = 1
    # 获取进程列表,并且获取进程名称
    $s = Get-Process | Select-Object name
    $s | foreach -process {$range = $ws.Cells.Item($row,1);$range.value2 = $_.Name;$row++ }# 下面这句用来关闭office中的一些提示确认框,否则会弹出一些对话框让你确认
    $xl.DisplayAlerts = $False
    #使用excel应用程序的Saveas来保存更改后的文档
    $wb.SaveAs("C:\Scripts\Get_Process.xls")# 注销释放$range对象
    Release-Ref $range
    # powershell的官方blog上多加了一步操作,也就是remove-variable $range,以
    # 前以为没有什么作用,后面发现如果不执行该项操作,该变量名称会停留
    # 在variable:\下面,如果执行dir variable:\ 会报错误remove-variable $range
    Release-Ref $ws
    remove-variable $ws
    Release-Ref $wb
    remove-variable $wb
    $xl.Quit()
    Release-Ref $xl
    remove-variable $xl
    
  • ***如果是针对远程计算机操作,尝试下面的,当然首先你需要配置Wsman
    $strComputer = (remote machine name)
    $P = gwmi win32_process -comp $strComputer

  • 如何打开一个Excel 文件?

    #an existing Workbook
    $xl.Workbooks.Open("C:\Scripts\ado_object_model.xls")
    

  • 如何创建一个新的Excel文件 workbook?

    $xl = new-object -comobject excel.application
    $xl.Visible = $true
    $wb = $xl.Workbooks.Add()
    $xl.ActiveCell.Value2 = "x"
    $xl.ActiveSheet.Range("B1").Value2 = "y"
    

  • 如何到处Powershell的命令输入历史到 Excel?

    function Release-Ref ($ref) {([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComOb­ject]
    $ref) -gt 0)
    [System.GC]::Collect()
    [System.GC]::WaitForPendingFinalizers()}# —————————————————–$xl = New-Object -comobject Excel.Application$xl.Visible = $True$wb = $excel.Workbooks.Add()
    $ws = $workbook.Worksheets.Item(1)
    $range = $worksheet.Cells.Item(1,1)$row = 1
    $s = Get-History | foreach -process { `
    $range = $worksheet.Cells.Item($row,1); `
    #下面的Value2可以输入字符串,否则你用value属性会报错。
    $range.value2 = $_.CommandLine; `
    $row++ }$xl.DisplayAlerts = $False
    $wb.SaveAs("C:\Scripts\Get_CommandLine.xls")Release-Ref $rangeRelease-Ref $wsRelease-Ref $wb$xl.Quit()Release-Ref $xl
    

  • 如何转换"~" 分隔的文本文件到Microsoft Excel?

    # Script name: ConvertTilde.ps1
    # Created on: 2007-01-06
    # Author: Kent Finkle
    # Purpose: How Can I Convert a Tilde-Delimited File to Microsoft Excel
    Format?$s = gc C:\Scripts\Test.txt
    # 先把~替换成Tab制表符,然后使用Excel打开它,其实我觉得这里使
    # 用import-csv 然后加上一个分隔符的参数然后导出CSV 再用excel打开也可以
    $s = $s -replace("~","`t")
    $s | sc C:\Scripts\Test.txt
    $xl = new-object -comobject excel.application
    $xl.Visible = $true
    $wb = $xl.Workbooks.Open("C:\Scripts\Test.txt")
    

  • 如何为Excel 工作薄设置数据有效性验证

    $comments = @’
    Script name: Add-Validation.ps1
    Created on: Wednesday, September 19, 2007
    Author: Kent Finkle
    Purpose: How can I use Windows Powershell to Add Validation to an
    Excel Worksheet?
    ‘@#—————————————————–
    function Release-Ref ($ref) {([System.Runtime.InteropServices.Marshal]::ReleaseComObject(
    [System.__ComObject]$ref) -gt 0)
    [System.GC]::Collect()
    [System.GC]::WaitForPendingFinalizers()}#—————————————————–$xlValidateWholeNumber = 1
    $xlValidAlertStop = 1
    $xlBetween = 1$xl = new-object -comobject excel.application
    $xl.Visible = $True$wb = $xl.Workbooks.Add()
    $ws = $wb.Worksheets.Item(1)
    $r = $ws.Range("e5")
    $r.Validation.Add($xlValidateWholeNumber, ` $xlValidAlertStop,
    $xlBetween, "5", "10") $r.Validation.InputTitle = "Integers"
    $r.Validation.ErrorTitle = "Integers"
    $r.Validation.InputMessage = "Enter an integer from five to ten"
    $r.Validation.ErrorMessage = "You must enter a number from five to
    ten"$a = Release-Ref $r
    $a = Release-Ref $ws
    $a = Release-Ref $wb
    $a = Release-Ref $xl
    

  • 添加图表到 Excel 工作薄

    $xrow = 1
    $yrow = 8
    $xl = New-Object -c excel.application
    $xl.visible = $true
    $wb = $xl.workbooks.add()
    $sh = $wb.sheets.item(1)
    1..8 | % { $sh.Cells.Item(1,$_) = $_ }
    1..8 | % { $sh.Cells.Item(2,$_) = 9-$_ }
    $range = $sh.range("a${xrow}:h$yrow")
    $range.activate
    # create and assign the chart to a variable
    $ch = $xl.charts.add()
    $ch.chartType = 58
    $ch.setSourceData($range)
    $ch.export("C:\test.jpg")
    $xl.quit()# excel has 48 chart styles, you can cycle through all
    1..48 | % {$ch.chartStyle = $_; $xl.speech.speak("Style $_"); sleep 1}
    $ch.chartStyle = 27                          # <– use the one you like
    

  • 对Excel 工作薄的某一列进行排序

    $xlSummaryAbove = 0
    $xlSortValues = $xlPinYin = 1
    $xlAscending = 1
    $xlDescending = 2# one-column sort –> works
    [void]$range1.sort($range2, $xlAscending)
    [void]$range1.sort($range3, $xlAscending)
    # two-column sort –> doesn’t sort both columns
    # the 4th arg [xlSortType] gives problems so pass $null or ”,
    # it may be for PivotTables only
    [void]$range1.sort($range2, $xlAscending, $range3, ”, $xlAscending)
    

  • 对Excel的某一列进行汇总

    \ mon tue wed
    eggs 1 1 1
    ham 5 5 5
    spam 1 4 7
    spam 2 5 8
    spam 3 6 9

    处理代码:

       $xlSum = -4157$range = $xl.range("A1:D6")$range.Subtotal(1,-4157,(2,3,4),$true,$false,$true)#     Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(4), _#     Replace:=True, PageBreaks:=False, SummaryBelowData:=True
    

  • 怎样使用 xlConstants

    $xlAutomatic=-4105
    $xlBottom = -4107
    $xlCenter = -4108
    $xlContext = -5002
    $xlContinuous=1
    $xlDiagonalDown=5
    $xlDiagonalUp=6
    $xlEdgeBottom=9
    $xlEdgeLeft=7
    $xlEdgeRight=10
    $xlEdgeTop=8
    $xlInsideHorizontal=12
    $xlInsideVertical=11
    $xlNone=-4142
    $xlThin=2$xl = new-object -com excel.application
    $xl.visible=$true
    $wb = $xl.workbooks.open("d:\book1.xls")
    $ws = $wb.worksheets | where {$_.name -eq "sheet1"}
    $selection = $ws.range("A1:D1")
    $selection.select()$selection.HorizontalAlignment = $xlCenter
    $selection.VerticalAlignment = $xlBottom
    $selection.WrapText = $false
    $selection.Orientation = 0
    $selection.AddIndent = $false
    $selection.IndentLevel = 0
    $selection.ShrinkToFit = $false
    $selection.ReadingOrder = $xlContext
    $selection.MergeCells = $false
    $selection.Borders.Item($xlInsideHorizontal).Weight = $xlThin
    

  • excel 的自动填充功能在powershell中的使用

    $xlFillWeekdays = 6$xl = new-object -com excel.application
    $xl.visible=$true
    $wb = $xl.workbooks.add()
    $ws = $wb.worksheets | where {$_.name -eq "sheet1"}
    $range1= $ws.range("A1")
    $range1.value() = (get-date).toString("d")
    $range2 = $ws.range("A1:A25")
    $range1.AutoFill($range2,$xlFillWeekdays)
    $range1.entireColumn.Autofit()
    # $wb.close()
    # $xl.quit()
    

  • 获得Excel的某个选取范围

    # get-excelrange.ps1
    # opens an existing workbook in Excel 2007, using PowerShell
    # and turns a range bold # Thomas Lee – t…@psp.co.uk
    # Create base object
    $xl = new-object -comobject Excel.Application# make Excel visible
    $xl.visible = $true# open a workbook
    $wb = $xl.workbooks.open("C:\Scripts\test.xls")# Get sheet1
    $ws = $wb.worksheets | where {$_.name -eq "sheet1"}# Make A1-B1 bold
    $range = $ws.range("A1:B1")
    $range.font.bold = "true"# Make A2-B2 italic
    $range2 = $ws.range("A2:B2")
    $range2.font.italic = "true"# Set range to a value
    $range3=$ws.range("A2:B2")
    $Range3.font.size=24# now format an entire row
    $range4=$ws.range("3:3")
    $range4.cells="Row 3"
    $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

  • 如何进行选择性复制和粘贴?

    $xlPasteValues = -4163
    $xlCellTypeLastCell = 11 $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中定义这些常量。

powershell操作excel相关推荐

  1. Powershell操作Excel简析

    Powershell操作Excel简析 一.Powershell简介 二.Powershell打开Excel文件 三.Powershell导出PDF文件 四.Powershell选择单元格区域 五.P ...

  2. Powershell 操作Excel的基本命令

    关于Powershell的Excel基本操作 1.新建Excel $excel = New-Object -ComObject Excel.Application 2.对话框是否显示 $excel.d ...

  3. python excel操作单元格_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  4. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  5. C#如何在Form中嵌入并且操作Excel表格

    网上比较多讲述如何操作excel表的文章,但都是启动excel的窗口来打开excel数据文件.有时候需要把excel表嵌入到自己程序的form中,给客户一个不用切换窗口的操作界面,似乎更好.这在vc中 ...

  6. c#操作Excel整理总结

    大家好,这是我在工作中总结的关于C#操作Excel的帮助类,欢迎大家批评指正! using System; using System.Collections.Generic; using System ...

  7. C#操作excel(多种方法比较)

    我们在做excel资料的时候,通常有以下方法. 一.导入导出excel常用方法: 1.用查询表的方式查询并show在数据集控件上. 代码 public static string strCon = & ...

  8. python连接excel存放数据_有了这篇python操作Excel学习笔记,以后储存数据 办公很轻松!...

    最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开始直接用Excel来处理.但是做着做着发现重复的劳动其实并没有多大的意义,于是就想着写个小工具帮着处理.以前正好在一本书上看到 ...

  9. openpyxl 操作 Excel表的格基本用法

    在本教程中,将Python3和openpyxl库一起使用来操作 Excel 表格. 本文将介绍如下操作: 如何在内存中创建工作簿 如何从工作簿中检索.创建.复制.移动和删除工作表 如何从文件创建工作簿 ...

最新文章

  1. plotly基于dataframe数据绘制线形图(line plot)
  2. python英语字典程序修改_详解如何修改python中字典的键和值
  3. python爬虫抓收费图片_简单的Python抓taobao图片爬虫
  4. 使用exe4j打包Java程序
  5. 开源java性能分析工具_Java性能监控:您应该知道的5个开源工具
  6. 高斯模糊 主色 android,【PS精选案例教程】制作柔美的蓝色数码霓虹字
  7. 232.栈实现队列(力扣leetcode) 博主可答疑该问题
  8. linux phpredisAdmin安装步骤
  9. Python之高等数学的符号求解
  10. 将bmp格式的图片反色
  11. linux c语言math lm pow,C语言pow()函数实现求x的y次方的值
  12. BIOS设置图解教程
  13. 应用程序界面开发 - 自定义用户控件布局控件的使用
  14. easyui ValidateBox validType验证规则
  15. laravel使用scout和elasticsearch中文分词ik
  16. H5微信授权登录后点击返回出现循环登录无法退出问题
  17. 2019 SIGGRAPH paper
  18. 大数据告诉你,其实中国电影票房的最强锦鲤,不是吴京
  19. 达人评测 赛扬J4105和赛扬N5095选哪个好
  20. 运维实践-使用WebP Server Go无缝转换图片为Google的webp格式让你网站访问加载速度飞起来...

热门文章

  1. 基于STM32F103,用蜂鸣器播放歌曲
  2. 记一次 .NET 某智能交通后台服务 CPU爆高分析
  3. HTC Vive与Oculus Rift全面对比
  4. c语言实现动态心型代码
  5. linux的内存占用分析,Linux 内存占用分析
  6. Android开发技术周报 Issue#27
  7. android打开x86模拟器失败
  8. 怎么打开计算机的音乐模式,xp开机音乐怎么设置 如何设置开机音乐
  9. 笔试编程题——数组中出现次数超过一半的数字
  10. 数加加众包:奔驰“哭诉维权”美女硕士,你“不要脸”的样子真的很美