При запросе из db у вас могут быть пустые поля, в моем случае я использую контроллер для извлечения данных из списка объектов, но либо, если вы этого не сделаете, вы должны проверить наличие нулевых или пустых значений и правильно их отформатировать (или они могут сделать твоя таблица выглядит странно)

я есть база данных, содержащая одну таблицу, я хочу создать файл CSV со значениями этой таблицы.

На самом деле, я хочу отправить этот CSV-файл по электронной почте в виде вложения. Я знаю об отправке файла в виде вложения в электронное письмоintent(ACTION_SEND), но я не знаю процедуру создания или метод, с помощью которого я могу создать файл в формате CSV.

Пожалуйста, дайте мне предложения или идеи.

Ответы на вопрос(4)

Решение Вопроса

opencsv за это

Загрузите библиотеку отсюда:

http://sourceforge.net/projects/opencsv/

В этом вы можете найти файл JAR.

Внутри вашей деятельности используйте это:

CSVWriter writer = null;
try 
{
    writer = new CSVWriter(new FileWriter("/sdcard/myfile.csv"), ',');
    String[] entries = "first#second#third".split("#"); // array of your values
    writer.writeNext(entries);  
    writer.close();
} 
catch (IOException e)
{
    //error
}
 Paresh Mayani08 янв. 2011 г., 14:09
спасибо Викас, я уже реализовал и получил такое же решение, как вы упомянули. Кстати, спасибо за вашу своевременную поддержку.
 Tina J29 авг. 2016 г., 20:54
@VikasPatidar Как я могу постоянно сохранять данные? У меня есть данные, генерируемые постоянно и, по-видимому, пока я не звонюclose() это не спасает
 Paresh Mayani08 янв. 2011 г., 07:25
Я думаю, вы имеете в виду, что я должен включить этот класс CSVWriter, а затем я должен играть с этим классом CSVWriter, это так?
 Vikas Patidar08 янв. 2011 г., 07:46
@ PM: да, я обновил свой ответ
 Paresh Mayani08 янв. 2011 г., 07:19
Я посетил ссылку, которую вы предоставили, но я не узнал, как включить это в мое приложение для Android. пожалуйста, дайте мне знать, спасибо за ваш быстрый ответ

;' в качестве разделителя между значениями поля. Пожалуйста, используйте ',' соответственно для генерации CSV.

Спасибо даршан

private void exportTheDB() throws IOException
{
        File myFile;  
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
    String TimeStampDB = sdf.format(cal.getTime()); 

    try {

        myFile = new File(extStorageDirectory+"/Export_"+TimeStampDB+".csv");
        myFile.createNewFile();
        FileOutputStream fOut = new FileOutputStream(myFile);
        OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
        myOutWriter.append("Start time;End time;Elapse;Sports type");
        myOutWriter.append("\n");
        sampleDB = this.openOrCreateDatabase(DB_NAME,MODE_PRIVATE, null);

        Cursor c = sampleDB.rawQuery("SELECT * FROM  Sport_Records ", null);

        if (c != null) {
            if (c.moveToFirst()) {
                do {


                    String start_Time = c.getString(c.getColumnIndex("startTimeDate"));
                    String end_Time = c.getString(c.getColumnIndex("endTimeDate"));
                    String elapse_Time = calculateTimeDifferece(end_Time, start_Time);
                    String sport_Name = c.getString(c.getColumnIndex("label"));

                    myOutWriter.append(start_Time+";"+end_Time+";"+elapse_Time+";"+sport_Name);
                    myOutWriter.append("\n");
                }

                while (c.moveToNext());
            }

            c.close();
            myOutWriter.close();
            fOut.close();

        }
    } catch (SQLiteException se) 
    {
        Log.e(getClass().getSimpleName(),"Could not create or Open the database");
    }

    finally {

        sampleDB.close();

    }






}
 PankajAndroid11 мар. 2014 г., 13:05
это работает, когда строка содержит пространство ??

и преобразует его в файл CSV:

http://supercsv.sourceforge.net/

Также возможно получить данные из базы данных в формате CSV.


При запросе из db у вас могут быть пустые поля, в моем случае я использую контроллер для извлечения данных из списка объектов, но либо, если вы этого не сделаете, вы должны проверить наличие нулевых или пустых значений и правильно их отформатировать (или они могут сделать твоя таблица выглядит странно)

String[] details = { 
        replaceNull(someObject.getId()),
        replaceNull(someObject.getName())
};


public static String replaceNull(String input) {
    return ((input == null || input.isEmpty()) ? " " : input);
}

writer.writeNext(details);

Ваш ответ на вопрос