この記事では、CSVファイルからグラフを自動生成してExcelレポートを作る方法について説明します。
以前は Excel COM オブジェクトを使って操作する方法が主流でしたが、実はもっと簡単にできる方法があります。それが ImportExcel モジュール を使う方法です。
このモジュールを使うと、Excelをインストールしていなくても CSVを読み込み、Excelファイルを作成し、グラフまで自動生成することができます。業務で定期レポートを作っている方にとって、かなり便利なツールになるはずです。
ImportExcelモジュールとは?
ImportExcel は、Doug Finke 氏が公開している PowerShell モジュールで、以下のような特徴があります。
- Excelをインストールしていなくても動作する
- CSVやオブジェクトを直接Excelファイルに書き込める
- 罫線やスタイル、グラフの作成も簡単
- 業務自動化やレポート作成に最適
参考: GitHub - dfinke/ImportExcel: PowerShell module to import/export Excel spreadsheets, without Excel
事前準備
まずはモジュールをインストールしましょう。管理者権限でPowerShellを開き、以下のコマンドを実行します。
Install-Module -Name ImportExcel -Scope CurrentUser
サンプルデータ(CSVファイル)の準備
例として、以下のような sales.csv ファイルを用意します。
CSVをExcelに出力する
まずはシンプルに、CSVをそのままExcelファイルに変換してみます。
これだけで、Excelファイルが出力されます。
グラフを作成する方法
次にグラフの自動生成です。Export-Excel には -ChartType オプションがあり、これを指定するとグラフの種類を指定してグラフを作成できます。
(例)棒グラフ(ClusteredColumn)を作る場合
折れ線グラフにしてみる
折れ線グラフにしたい場合は -ChartType を Line に変えるだけです。
# グラフ定義を作る
$chart = New-ExcelChartDefinition `
-ChartType Line ` # 折れ線グラフ
-XRange Month ` # 横軸に使う列
-YRange Sales ` # 縦軸に使う列
-Title "売上推移レポート" `
-NoLegend # 凡例を非表示
# CSVを読み込み → Excelに書き出し → グラフを追加して表示
Import-Csv .\sales.csv | Export-Excel .\sales-report.xlsx AutoNameRange `
-WorkSheetName "グラフ" `
-ExcelChartDefinition $chart `
-Show
まとめ
- PowerShell はデータ取得・加工と組み合わせて、グラフの自動生成まで可能
- ImportExcel モジュールを使えば、CSV → Excel → グラフという流れをシンプルに実装できる
- 実践例を作ることで、定期レポートなどの作業を効率化できる