CSV の特定の列を抽出して、リストや辞書を生成できるツールを公開しました

はじめに

CSV の特定の列をリストにしたり、特定の列をキー・値に持つ辞書を生成できる、Unity 向けのツールを公開しました! 🚀

github.com

CSV を辞書にして表示させたもの

使い方

CSV からリストを生成する

1. 抽出したい CSV を準備します。

var csv = @"
name,model_number,release_date
Family Computer,HVC-001,1983-07-15
SUPER Famicom,SHVC-001,1990-11-21
NINTENDO64,NUS-001,1996-06-23
"

上記のように CSV のテキストを直接コードに書いてもいいですし、 Resources.Load<TextAsset>(path).text などでファイルから取得しても大丈夫です。

2. リクエスト用のデータ CsvExtractRequest を作成します。

var request = new CsvExtractRequest(csv, true, "", 1);

3. 最後に、 CsvUtility.ExtractIntoList() でリクエストを投げれば、生成されたリストが取得できます。

List<string> list = CsvUtility.ExtractIntoList(request);

CSV から辞書を生成する

1. 抽出したい CSV を準備します(リストのときと同じ)。

2. リクエスト用のデータ CsvExtractRequest を作成します。 このとき、SetKeyColumnIndexes() で辞書のキーにする列を設定するのを忘れないでください!

var request = new CsvExtractRequest(csv, true, "", 1);
request.SetKeyColumnIndexes(0); // <- キーとして抽出する列のインデックスを設定

3. 最後に、 CsvUtility.ExtractIntoDictionary() でリクエストを投げれば、生成された辞書が取得できます。

Dictionary<string, string> dictionary = CsvUtility.ExtractIntoDictionary(request);

リクエストデータ CsvExtractRequest について

CsvExtractRequest は、以下のメンバーを持っています。

/// <summary>
/// CSV のテキスト。
/// </summary>
public string Csv { get; }

/// <summary>
/// true なら、CSV の 1 行目をヘッダーとして扱います。
/// </summary>
public bool HasHeader { get; }

/// <summary>
/// 複数の列が指定された際、この文字で列同士を繋げます。
/// </summary>
public string Separator { get; }

/// <summary>
/// 値として抽出する列のインデックス。
/// </summary>
public int[] ValueColumnIndexes { get; }

/// <summary>
/// キーとして抽出する列のインデックス。辞書を生成するときのみ使用します。
/// </summary>
public int[] KeyColumnIndexes { get; private set; }

public CsvExtractRequest(string csv, bool hasHeader = false, string separator = null, params int[] valueIndexes)
{
    Csv = csv;
    HasHeader = hasHeader;
    Separator = separator;
    ValueColumnIndexes = valueIndexes;
}

public void SetKeyColumnIndexes(params int[] indexes)
{
    KeyColumnIndexes = indexes;
}

インストール方法

Package Manager を使用する方法

導入したい Unity プロジェクトで Package Manager を開き、「+」ボタンを押して「Add package from git URL...」を選択、以下の URL を入力して「Add」ボタンを押すとインストールできます。

https://github.com/gigacreation/Csv2CollectionsForUnity.git?path=Assets/Csv2Collections

手動でインストールする方法

GitHub のリポジトリからソースコードをダウンロードし、その中の Assets/Csv2Collections/ ディレクトリを導入したい Unity プロジェクトにコピーします。

The coloring of this site is Dracula PRO🧛🏻‍♂️
This website uses the FontAwesome icons licensed under CC BY 4.0.

2020 GIGA CREATION