CSV ファイルを Money に取り込む方式について
CSV ファイルを変換するための定義を定義ファイル(XMLファイル)に書いておいて、これを使って 変換をかける。
各定義には、銀行名、銀行番号、CSVの1行目の文字列、各フィールドのマッピングなどを記述。 CVS の1行目は、銀行を自動識別するための Ident として使う(1行目がない場合は省略する)
銀行の支店番号、口座番号が必要だが、これは銀行ごとに1個だけ記憶しておくようにする。 (2個以上にしたいことってある?)
定義ファイルは、以下のディレクトリに置く。
C:\Documents and Settings\username\Local Settings\Application Data\tmurakam.org\FeliCa2Money
定義ファイルは拡張子が .xml であればなんでもよく、いくつあっても全部読み込まれる。 FeliCa2Money 公式で配布する定義は CsvRules.xml というファイル名にする。このファイルは自動アップデートによりインストールする。 書き換えないこと。
個人定義は GUI でマッピングを設定できるようにするのがいいけど(年賀状ソフトで CSV 住所録から取り込みするようなイメージ)、 面倒なのでとりあえず後回しかな?
以下のように書く。エンコーディングは UTF-8。ちなみに最新の定義は常にここにある。
なお、定義ファイルを作ったら作者までメールで送って下さい(アドレスは tmurakam@tmurakam.org)。公式に取り込みます。
<?xml version="1.0" encoding="UTF-8"?> <CsvRules> <Rule> <Ident>OFXConverter</Ident> <Name>OFXConverter互換</Name> <FirstLine>明細日,明細金額,Money摘要欄,Money備考欄</FirstLine> <Format>Date,Income,Desc,Memo</Format> <Order>Ascent</Order> </Rule> <Rule> <Ident>ebank</Ident> <Name>イーバンク</Name> <BankId>36</BankId> <FirstLine>取引日,入出金(円),残高(円),入出金先内容</FirstLine> <Format>Date,Income,Balance,Desc</Format> <Order>Ascent</Order> </Rule> <Rule> <Ident>JapanNetBank</Ident> <Name>ジャパンネット銀行</Name> <BankId>33</BankId> <FirstLine>"操作日(年)","操作日(月)","操作日(日)","取引順番号","摘要","お支払金額","お預り金額","残高"</FirstLine> <Format>Year,Month,Day,Id,Desc,Outgo,Income,Balance</Format> <Order>Ascent</Order> </Rule> <Rule> <Ident>SonyBank</Ident> <Name>ソニー銀行</Name> <BankId>35</BankId> <FirstLine>"お取り引き日","摘要","お預け入れ額","お引き出し額","差し引き残高"</FirstLine> <Format>Date,Desc,Income,Outgo,Balance</Format> <Order>Ascent</Order> <Separator>Comma</Separator> </Rule> </CsvRules>
Ident は必ず一意の文字列にすること(他のと衝突すると嫌なことが起こる)
Name は、CSV形式選択ダイアログボックスに表示するので、ユーザがみてわかる文字列にする。
BankId は銀行番号。Google 先生で調べる。銀行じゃない場合は BankId エントリはなくてよい。
FirstLine には CSV の1行目にくる文字列を書く。この文字列は CSV フォーマットの自動選択に使う。 なお、1行目がないような CSV ファイルに対応する場合は、FirstLine エントリ自体を書かないようにすればよい。 この場合、CSV ファイルはきちんと1行目から読み込まれる。ただし、フォーマット自動選択は効かなくなるので、 ダイアログボックスで毎回選択する必要がある。
Format には、各 CSV のフィールドのマッピングを記載する :
このうち、Date または Year/Month/Day のいずれかは必須。Income/Outgoのいずれかは必須。 これらの情報が欠けていると OFX ファイルが正しく生成されません。これ以外のはなくても自動で補完します。
Order は CSV の並び順。Ascent だと昇順、Descentだと降順。 また、"Sort" を指定した場合、日付順に自動ソートする (ver 2.9以降)。取引が日付順になっていない場合のみ、これを指定すること。
Separator はフィールド区切り文字の指定。Comma だとカンマ(,)、Tab だとタブ文字(\t) となる。デフォルトはカンマ。