CSVファイルをRealmファイルに変換する方法について、Realm Studioを使う方法のメモ。
Realm Studioのインストール
Realm Studioは、このサイトからWindows版・Linux版・Mac版を入手可能。
Realm StudioでのCSVファイル変換
Realm Studioを起動して、File>Create Realm from>CSVとメニューを選択。
{ width=300 }{ target="_blank" }
CSVファイルからのRealmファイルの作成メニュー
ファイルオープンダイアログが表示されるので、CSVファイルを選択します。
例えば、このようなCSVファイルを指定すると、
prefecture_code,prefecture_name
1,北海道
2,青森県
3,岩手県
4,宮城県
5,秋田県
6,山形県
7,福島県
8,茨城県
9,栃木県
10,群馬県
11,埼玉県
12,千葉県
13,東京都
14,神奈川県
(以下、省略)
以下のように、CSVファイルと同じフォルダにdefault.realmファイル(と関連ファイル)が作成されます。
{ width=300 }{ target="_blank" }
作成されたRealmファイル
Realmファイルの内容は、CSVファイルのファイル名がクラス名となり、CSVファイルの1行目のヘッダに書かれたカラム名が列名となっています。
{ width=300 }{ target="_blank" }
作成されたRealmファイルの内容
なお、この画面から行の追加、および列の追加が可能。またクラスも増やすことができます。
モデル定義クラスの生成
アプリから作成したRealmファイルを使う場合、モデルを定義したクラスが必要になります。これもrealm Studioから可能。
File>Save model definitoinsメニューから、クラス定義の言語を選択します。
{ width=300 }{ target="_blank" }
モデル定義クラスファイルの作成メニュー
すると、作成先のフォルダを指定するダイアログが表示されるので、指定してOKを押すと、そのフォルダにファイルが作成されます。
{ width=300 }{ target="_blank" }
作成先フォルダの入力ダイアログ
{ width=300 }{ target="_blank" }
作成されたモデル定義クラス
クラスのファイル名はCSVファイル名(クラス名)と同じで、以下のような内容です。
// Please note : [Backlink] properties and default values are not represented
// in the schema and thus will not be part of the generated models
using System;
using System.Collections.Generic;
using Realms;
namespace MyProject.Models
{
public class pref : RealmObject
{
[MapTo("prefecture_code")]
public long? Prefecture_code { get; set; }
[MapTo("prefecture_name")]
public string Prefecture_name { get; set; }
}
}
アプリには、名前空間など必要な修正をしたうえで、ファイルを取り込むことになります。
まとめ
モデル定義クラスへの反映を踏まえて、CSVファイルのファイル名、およびヘッダに記載する列名を考慮する必要がありますが、CSVファイルを自由に定義できて、かつ手動での変換操作のコストが無視できる場合は、Realm Studioを利用するのもよいかと思います。
ただし、CSVファイルの仕様が他者によって決まる場合、もしくは頻繁に更新される場合は、別途ツールを作ったほうがよさそうです。