検索結果を画面で確認するだけでなく、あとで確認したい・他の人と共有したいというケースも多いですよね。
そんな時に便利なのが、検索結果のエクスポート機能です。
今回追加する機能
機能 | 内容 |
---|---|
CSVファイル出力 | 検索結果をCSV形式で保存し、Excelなどで開けるようにする |
Excelファイル出力(任意) | Excelアプリがインストールされていれば、Excel形式(.xlsx)で出力も可能 |
CSV出力のコード例
# 検索結果の例(オブジェクトの配列)
$results = @(
[PSCustomObject]@{ Name = "report.xlsx"; Path = "C:\data\report.xlsx"; SizeMB = 1.5 },
[PSCustomObject]@{ Name = "log.txt"; Path = "C:\logs\log.txt"; SizeMB = 0.2 }
)
# CSVファイルに出力
$results | Export-Csv -Path "検索結果.csv" -Encoding UTF8 -NoTypeInformation
Excelファイル出力(オプション)
Excelが使える環境であれば、COMオブジェクトを使って直接.xlsxに書き込むこともできます。
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$workbook = $excel.Workbooks.Add()
$sheet = $workbook.Worksheets.Item(1)
# 見出し
$sheet.Cells.Item(1, 1) = "ファイル名"
$sheet.Cells.Item(1, 2) = "パス"
$sheet.Cells.Item(1, 3) = "サイズ(MB)"
# データ書き込み
$row = 2
foreach ($item in $results) {
$sheet.Cells.Item($row, 1) = $item.Name
$sheet.Cells.Item($row, 2) = $item.Path
$sheet.Cells.Item($row, 3) = $item.SizeMB
$row++
}
# 保存して終了
$savePath = "検索結果.xlsx"
$workbook.SaveAs($savePath)
$workbook.Close($false)
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
ユーザーインターフェース(UI)にもボタンを追加
- 「CSV保存」ボタン → CSV出力処理を実行
- 「Excel保存」ボタン(オプション)→ Excel形式で保存処理
出力のメリット
- 社内共有やメール添付がラクになる
- 過去の検索履歴を保存しておける
- データ集計・分析にも使いやすい
まとめ
検索結果のエクスポート機能を追加することで、PowerShell検索アプリが**「業務で使える実用ツール」**として大きく前進します。
CSV形式は手軽で汎用性があり、Excel形式は見やすさ重視。どちらも使えると便利です!
次回予告
次回は、**「検索条件のテンプレート保存&呼び出し」**機能を実装し、ワンクリックでよく使う条件を再利用できるようにします!
コメント