在 PowerShell 中,探討 Excel 的架構

藉由 http://www.lazywinadmin.com/2014/03/powershell-read-excel-file-using-com.html 網路資源一文,來探究 Excel 架構該如何在 PowerShell 中表現出來!

首先來看個 Excel 範例:VIDEOSERVER01-BuildSpecs.xlsx

接下來的問題,就是該如何使用 PowerShell 來讀取該檔案的內容?及如何隨心所欲的控制 Excel 的數據!

  • 使用 COM 來建置 Excel.Application 的物件
    $objExcel = New-Object -ComObject Excel.Application
  • 顯示 Excel.Application 的物件
    $objExcel.Visible = $true
  • 使用 quit() 來移除 Excel.Application 的物件
    $objExcel.quit()
  • 使用 Open() 來開啟 Excel 檔案
    $FilePath = "D:\Test\PowerShell\VIDEOSERVER01-BuildSpecs.xlsx"
    $WorkBook = $objExcel.Workbooks.Open( $FilePath )
  • 得知 WordBook 中,含有幾個 WorkSheet
    $WorkBook.sheets
  • 存取特定的 Sheet
    $SheetName = "BuildSpecs"
    $WorkSheet = $WorkBook.sheets.item( $SheetName )
  • 其他相關指令
    $objExcel.WorkBooks | Select-Object -Property name, path, author
    $objExcel.WorkBooks
    $objExcel.WorkBooks | Get-Member
    $WorkBook
    $WorkBook | Get-Member -Name *sheet*
    $WorkBook.sheets | Select-Object -Property Name


對於儲存格的存取,可以有很多種方式,擇一使用即可:

$worksheet.Range("C3").Text
$worksheet.Range("C3:C3").Text
$worksheet.Range("C3","C3").Text
$worksheet.cells.Item(3, 3).text
$worksheet.cells.Item(3, 3).value2
$worksheet.Columns.Item(3).Rows.Item(3).Text
$worksheet.Rows.Item(3).Columns.Item(3).Text
$worksheet.UsedRange.Range("c3").Text

網路資源:Microsoft.Office.Interop.Excel.ApplicationClass

沒有留言: