Android将数据导出到csv

时间:2014-04-07 16:15:08

标签: android sqlite csv export

我想以CSV格式从我的SQLite数据库中的表中导出一些字段。我正在使用库opencsv-2.4。 工作,但表的所有列都存储在电子表格的单个列中,而必须分开。 这是我的方法:

  File exportDir = new File(Environment.getExternalStorageDirectory(), "");        
if (!exportDir.exists()) 
{
    exportDir.mkdirs();
}

File file = new File(exportDir, "csvname.csv");
try 
{
    file.createNewFile();                
    CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
    SQLiteDatabase db = mHelper.getReadableDatabase();
    Cursor curCSV = db.rawQuery("SELECT * FROM Table",null);
    csvWrite.writeNext(curCSV.getColumnNames());
    while(curCSV.moveToNext())
    {
       //Which column you want to exprort
        String arrStr[] ={curCSV.getString(0),curCSV.getString(1), curCSV.getString(2)};
        csvWrite.writeNext(arrStr);
    }
    csvWrite.close();
    curCSV.close();
}
catch(Exception sqlEx)
{
    Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
}

}

1 个答案:

答案 0 :(得分:1)

您需要为列使用分隔符。

使用以下语法:

CSVWriter writer = new CSVWriter(new FileWriter(file), ",", "", "\n");

而不是:

CSVWriter csvWrite = new CSVWriter(new FileWriter(file));

这会将逗号()设置为字段分隔符,并将换行符( \ n )设置为行终止符

或者只是

CSVWriter writer = new CSVWriter(new FileWriter(file), ",");

这会将逗号()设置为字段分隔符 Excel使用分号(; ) 其他软件可能使用管道( | )或标签( \ t )或...