Android: genera archivo CSV de valores de tabla

Tengo una base de datos que contiene una tabla, quiero generar el archivo CSV con los valores de esta tabla.

En realidad, quiero enviar un correo electrónico a este archivo CSV como un archivo adjunto. Sé que enviar el archivo como un archivo adjunto en intent(ACTION_SEND) correo electrónico intent(ACTION_SEND) , pero no sé el procedimiento de creación o el método por el que puedo crear archivo con formato CSV.

Por favor déme sugerencias o ideas.

Puedes usar opencsv para esto

Descargue la biblioteca de aquí:

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

En esto se puede encontrar el archivo jar.

Dentro de su actividad use esto:

 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 } 

Esto podría ser útil. Necesitaba ";" Como separador entre los valores de feild. Por favor, utilice ',' en consecuencia para la generación de CSV.

Gracias, Darshan

 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(); } } 

Esto parece realmente prometedor. Tomará cualquier objeto Java y lo convertirá en un archivo CSV:

http://supercsv.sourceforge.net/

También podría ser posible recuperar los datos de la base de datos en formato CSV.

Añadir a @ Cocos2dx respuesta:

Al consultar de db puede tener campos nulos, en mi caso yo uso un controlador para buscar los datos en una lista de objetos, pero si usted no debe comprobar si hay valores nulos o vacíos y formatearlos correctamente (o pueden hacer Tu mesa se ve raro):

 String[] details = { replaceNull(someObject.getId()), replaceNull(someObject.getName()) }; public static String replaceNull(String input) { return ((input == null || input.isEmpty()) ? " " : input); } writer.writeNext(details); 
  • Clasificación de ListView por nombre del producto con adaptador personalizado?
  • Android 4.3 jelly Bean Time formato cuestión
  • Android juego multi-jugador a través de la red
  • Org.codehaus.jackson.JsonParseException: carácter inesperado ('' (código 65279 / 0xfeff)): se espera un valor válido
  • Cómo serializar objeto a JSON?
  • Retrofit 2 Método RequestBody writeTo () llamado dos veces
  • System.getProperty ("line.separator") Vs "\ n" para Android
  • OkHttp PublicKey pinning en Android
  • Archivo binario línea # 7: Debe proporcionar un atributo layout_width
  • ¿Se recomienda comprobar la vista de null con cada llamada findViewById?
  • Implementar pausa / reanudar en la descarga de archivos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.