iPhone 記帳軟體 TapExpense 是我目前隨身記帳的軟體,而在家則有 MacMoney 負責管總帳,每次要邊看 TapExpense 一邊重新輸入資料到電腦當中實在有些麻煩。因此想找出一個解決的方法,讓我將 TapExpense 所產生的 CSV 資料匯入到 MacMoney。
由於 TapExpense 匯出的資料和MacMoney有些不同,前者的資料欄位有 8 欄,後者則是 5 欄。另外就是 TapExpense 支出項目的數值會自動添加負號(-),如果直接引進 MacMoney 的話,支出費用的記錄會發生借貸逆向的狀況。
幸運的是,因為 Mac 已經事先安裝 Perl,因此找了個 Perl 的程式碼改改,會將 TapExpense 的資料改成我們要的。
1. TapExpense / 工作 / 匯出CSV格式資料
2.收到Email後將裡面的資料儲存為 input.csv
3.將以下的程式碼儲存為 converter.pl,和 input.csv 放在一起
4. 開啟 Terminal ,輸入以下語法
5.開啟 MacMoney / 網路記帳 / 從檔案匯入 即可。
由於 TapExpense 匯出的資料和MacMoney有些不同,前者的資料欄位有 8 欄,後者則是 5 欄。另外就是 TapExpense 支出項目的數值會自動添加負號(-),如果直接引進 MacMoney 的話,支出費用的記錄會發生借貸逆向的狀況。
幸運的是,因為 Mac 已經事先安裝 Perl,因此找了個 Perl 的程式碼改改,會將 TapExpense 的資料改成我們要的。
1. TapExpense / 工作 / 匯出CSV格式資料
2.收到Email後將裡面的資料儲存為 input.csv
3.將以下的程式碼儲存為 converter.pl,和 input.csv 放在一起
$file = 'input.csv';
open (F, $file) || die ("Could not open $file!");
while ($line = <F>)
{
($field1,$field2,$field3,$field4,$field5,$field6,$field7,$field8) = split ',', $line;
#分開各欄數值
$field3 =~ s/-//;
#取代負號
$result = "20$field1,$field4,$field5,$field3,$field8";
#補回西元成四位數
$result =~ s/20Date/Date/;
#取代標題誤植20
print $result;
}
close (F);
converter.pl 的功能是將 TapExpense 的資料依照逗點切開,只取出日期、分類、付款方式、金額、帳目。
不知為何 TapExpense 將年份設定為2位數,2011/01/01就會變成 11/01/01,因此在日期字串加上"20"。
由於這樣又會讓第一列的標題也多了個"20",會讓 MacMoney誤認為是筆錯誤的資料,因此做了取代 。
4. 開啟 Terminal ,輸入以下語法
perl converter.pl > macmoney.csv
5.開啟 MacMoney / 網路記帳 / 從檔案匯入 即可。
- 想找更簡單的資料轉換方式嗎?參考這篇:糊里糊塗的小泉: [Mac] Converting TapExpense reocrd to MacMoney by Automator - http://goo.gl/syoHv
Tags
咬蘋果