Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

  • ¿Grabar audio en Android con MediaPlayer como fuente?
  • No se puede resolver el símbolo @ integer / google_play_services_version para intellij
  • Uso de PowerMock y Robolectric - IncompatibleClassChangeError
  • Error DexFile.class en eclipse
  • Convertir una cadena en un Uri ... (Android)
  • ¿Cómo importar ZXING a android studio?
  • ¿Cuál es el código de color de Android Hint?
  • Creación de una biblioteca java con Eclipse
  • 4 Solutions collect form web for “Android: genera archivo CSV de valores de tabla”

    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); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.