技術関連の覚書

案件でやったり自宅で試したことの覚書

powershellを使ったExcelの操作

使いどころ

未だにExcelによる申請書とかが多く、マクロ作るのが権限的にできなかったり他のソフト(rubyとかPythonとか)をインストールできない現場で苦肉の策としてPowershellを使って動かすことになったのでメモ。 Powershellも権限的にスクリプトファイルを実行できない場合もあるけど、最悪でもテキストを流し込んで実行できるのでメモ。

powershellの基本的な出力
Write-Output("リダイレクトするとファイルに出力される")
Write-Host("リダイレクトしてもファイルに出力されない")
スクリプト実行権限ポリシーの変更

powershellで以下を実行

Set-ExecutionPolicy RemoteSigned
ExcelBookのオープンクローズ

Excelオブジェクトの作成

$excel = New-Object -ComObject Excel.Application

実行するExcelの可視化設定

$excel.Visible = $false

Excel Bookのオープン

$xlsxBook = $excel.Workbooks.Open($xlsxName)

Excelのクローズ

# ブックを閉じる
$xlsxBook.Close()
# Excelオブジェクトの終了
$excel.Quit()
# インスタンスの削除
$excel = $null

シートの取得

$sheet = xlsxBook.Worksheets
$xSheet = $sheet.Item("シート名")

シート名、インデックス

Write-Host($xSheet.Name)
Write-Host($xSheet.Index)

セルの値

$cVal = $xSheet.Range("A2").Text
$cVal = $xSheet.Cells(2, 1).Text