ImportExcelによるExcelデータ集約
よくあるExcelデータの集約。
ImportExcel使ったらめっちゃかんたんにできたのでメモ。
#ImportExcelをImportする
Import-Module ImportExcel
#ファイルを保存したフォルダを指定します。
$TargetFolder = C:\Temp
#ファイルリストを作ります。
$FileList =Get-ChildItem $TargetFolder -File -Filter *.xlsx
#集約させる入れ物を先に用意します。
$Table = @()
#データの開始行を指定します。
$StartRow = 3
#Fileを一つずつ処理します。
foreach($File in $FileList){
$TargetFile = $File.FullName
$LastWriteTime = $File.LastWriteTime
$Rows = Import-Excel $TargetFile -DataOnly -StartRow ($StartRow-1)
foreach($Row in $Rows){$Row|Add-Member -NotePropertyMembers @{ FileName = $File.BaseName; LastWriteTime = $LastWriteTime}}
$Table += $Rows #$Tableに一ファイルのデータを追記
}
#結果を格納するフォルダを用意します。
$OutputFolder = Join-Path $TargetFolder "結果"
if (-not (Test-Path $OutputFolder)){ mkdir $OutputFolder}
#一覧を出力します。
$Table|Export-Excel $OutputFolder\一覧.xlsx -ClearSheet
Import-Excelの使い方はこちら
Export-Excelの使い方はこちら
Import-Excel の欠点は、日付列が
2024/06/30 日 0:00:00
のようになってしまい、実行環境によって文字列が異なってしまうことです。