CSVファイルを表のように読みたい
このページでできること
CSVの見出しを列名として、各行をオブジェクトに読み込みます。
コマンドの例
Import-Csv -LiteralPath '.\data.csv' -Encoding UTF8練習用のdata.csv
Name,City
青木,名古屋
森,大阪この3行をテキストエディターに貼り付け、練習用フォルダーにdata.csvという名前・UTF-8で保存します。既存のファイルは上書きせず、拡張子がdata.csv.txtになっていないか確認してください。これはCSVの内容で、PowerShellに直接入力するコマンドではありません。
使い方を順番に確認する練習を始めるときは、この手順に沿って進めます
使い方
- Get-Locationで現在地を確認し、上のdata.csvをそのフォルダーに用意します。別の場所にある場合はコマンドのパスを置き換えます。
- 掲載コマンドを実行します。-LiteralPathはファイルの場所をそのまま指定し、-Encoding UTF8はUTF-8として読み込む指定です。
- NameとCityの2列、青木と森の2行が表示されるか確認します。1行目の見出しはデータ行には含まれません。
結果の例
| Name | City |
|---|---|
| 青木 | 名古屋 |
| 森 | 大阪 |
注意点
この例は見出し付き・カンマ区切り・UTF-8のCSV用です。列名がオブジェクトの項目名(プロパティ)、2行目以降がデータになります。読み込むだけなので元ファイルは変更しません。結果表は内容の対応を示したもので、画面の空白幅は環境によって変わります。
権限に関する注意:アクセス拒否の原因を調べずに、管理者権限や sudo で実行しないでください。
うまくいかないときに確認するエラーや想定と違う結果が出たときの確認ポイント
うまくいかないとき
ファイルが見つからない場合は、現在地と保存先、拡張子を確認します。列が1つにつながって表示される場合は、カンマ区切りか確認してください。セミコロン区切りなら -Delimiter ';' を追加するなど、実際の区切り文字に合わせます。見出しがないCSVでは先頭データが列名として扱われるため、この例をそのまま使わないでください。日本語が文字化けしたら元ファイルの文字コードを確認し、UTF-8ではないファイルをUTF-8だと決めつけないでください。
Windows PowerShell 5.1/Windows上のPowerShell 7を中心とした例です。対応環境や文字コードの違いは各ページで確認してください。