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の使い方はこちら

【ImportExcel】Import-Excelコマンドレットの使い方【PowerShell】

Export-Excelの使い方はこちら

Export-Excelコマンドレットの使い方【ImportExcel】【Powershell】

“ImportExcelによるExcelデータ集約” に対して2件のコメントがあります。

  1. 匿名 より:

    Import-Excel の欠点は、日付列が
    2024/06/30 日 0:00:00
    のようになってしまい、実行環境によって文字列が異なってしまうことです。

コメントを残す

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

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.