Android – создание CSV-файла из значений таблицы

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

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

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

Вы можете использовать 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 } 

Это может быть полезно. Мне нужно ‘;’ как разделитель между значениями feild. Пожалуйста, используйте «,» соответственно для генерации 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(); } } 

Это выглядит многообещающе. Он возьмет любой объект Java и преобразует его в файл CSV:

http://supercsv.sourceforge.net/

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

Добавление в @ Cocos2dx ответа:

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

 String[] details = { replaceNull(someObject.getId()), replaceNull(someObject.getName()) }; public static String replaceNull(String input) { return ((input == null || input.isEmpty()) ? " " : input); } writer.writeNext(details); 
  • Не удалось войти в систему. Проверьте подключение к сети и повторите попытку.
  • Как проверить, работает ли приложение на Android?
  • Речь в текст на Android
  • Можно ли вызвать метод main () classа из другого classа в java
  • Каков наилучший способ обмена данными между действиями?
  • Проверка программного режима энергосбережения
  • Привязка данных Android с использованием тега include
  • Круглые до двух знаков после запятой
  • Как правильно использовать обратную совместимость вектора вектора с последней поддержкой Android?
  • Использование статических переменных в Android
  • Как динамически загружать Java-class на android / dalvik?
  • Давайте будем гением компьютера.