如何在不同的CSV文件中导出多个表格?

时间:2019-02-13 12:24:55

标签: java android sqlite

我有一个包含很多表的数据库。我想将所有表导出到不同的.csv文件中。例如,表1将生成1.csv文件。表2. 2.csv文件。等等

此方法工作正常,但我仅将所有表导出到单个.csv文件中。

public void exportData (View view) {

    File dbFile = getDatabasePath("myDataBase.db");
    Helper dbhelper = new Helper(getApplicationContext());
    File exportDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
    if (!exportDir.exists())
    {
        exportDir.mkdirs();
    }

    File file = new File(exportDir, tableName);
    try
    {
        file.createNewFile();
        CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
        SQLiteDatabase db = dbhelper.getReadableDatabase();
        Cursor curCSV = db.rawQuery("SELECT * FROM " + tableName,null);
        csvWriter.writeNext(curCSV.getColumnNames());

        while(curCSV.moveToNext())
        {
            String arrStr[] ={curCSV.getString(0),curCSV.getString(1)};
            csvWriter.writeNext(arrStr);
        }

        csvWriter.close();
        curCSV.close();
    }
    catch(Exception sqlEx)
    {
        Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
    }

    Toast.makeText(this, "File created!", Toast.LENGTH_SHORT).show();

}

我想将所有表导出到不同的.csv文件中,每个表一个,表名+ .csv扩展名。

你会教我怎么做吗?

1 个答案:

答案 0 :(得分:0)

我鼓励您自己解决这个问题,我会提示您正确的方向。

您需要确定需要导出到哪个表的数据,并基于该循环仅遍历该表中的那些记录。

希望这会有所帮助