PowerShell GUI検索アプリに「CSV/Excel出力機能」を追加!


検索結果を画面で確認するだけでなく、あとで確認したい・他の人と共有したいというケースも多いですよね。
そんな時に便利なのが、検索結果のエクスポート機能です。


今回追加する機能

機能内容
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形式は見やすさ重視。どちらも使えると便利です!


次回予告

次回は、**「検索条件のテンプレート保存&呼び出し」**機能を実装し、ワンクリックでよく使う条件を再利用できるようにします!


コメント

タイトルとURLをコピーしました