我在做什麼?我將我的sqlite數據庫導出到csv - 至少我嘗試導出CSV格式非常奇怪
我已經完成了這兩個手動和"OpenCSV"。
使用這兩種方法我都會得到很奇怪的結果。他們似乎格式不正確。列(通常由','?分隔)或特殊字符(據說在opencsv中處理)看起來應該是這樣。代碼:
CSVWriter writer = new CSVWriter(new FileWriter(file),'\n',',');
String[] items = new String[11];
c.moveToFirst();
while(!c.isAfterLast()){
items[0] = c.getString(c.getColumnIndex(BaseColumns._ID));
items[1] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_QRCODE));
items[2] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_NAME));
items[3] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_AMOUNT));
items[4] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_UNIT));
items[5] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_PPU));
items[6] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_TOTAL));
items[7] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_COMMENT));
items[8] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_SHOPPING));
items[9] = c.getString(c.getColumnIndex(DepotTableMetaData.CREATED_DATE));
items[10] = c.getString(c.getColumnIndex(DepotTableMetaData.MODIFIED_DATE));
c.moveToNext();
writer.writeNext(items);
}
writer.close();
,這一切讓這個作爲結果:imgur-image..
我也通過FileWriter的和StringBuffer做,但它似乎給完全相同的結果...我喜歡你能不能幫我;)
我已經通過計算器看了,但找不到任何匹配的問題;/
編輯:是的,我知道,我用的是「老了,過時」光標,但在這裏,這不是問題。謝謝。
編輯2:已解決! 你必須分配一些常見的編碼!
CSVWriter writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(destination+"/output.csv"),"UTF-8"));
完成了這項工作!
您使用的是csv庫,但自己附加逗號... – you786
讓我更新代碼.. – Aeefire