ImportExcelによるExcelデータ集約
よくあるExcelデータの集約。
ImportExcel使ったらめっちゃかんたんにできたのでメモ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#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
のようになってしまい、実行環境によって文字列が異なってしまうことです。