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はこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください