Android – Générer un fichier CSV à partir de valeurs de table

J'ai une base de données contenant une table, je veux générer un fichier CSV avec des valeurs de ce tableau.

En fait, je souhaite envoyer un courrier électronique à ce fichier CSV en pièce jointe. Je sais d'envoyer le fichier comme une pièce jointe dans l' intent(ACTION_SEND) courrier électronique intent(ACTION_SEND) , mais je ne connais pas la procédure de création ou la méthode par laquelle je peux créer un fichier formaté CSV.

  • Différence entre DeadObjectException et une exception NullPointerException
  • Android Broadcast de Service To Activity
  • Session 'application': erreur Activation de lancement
  • Plusieurs applications Android dépendent de la bibliothèque Android avec gradle
  • Comment puis-je recadrer un bitmap pour ImageView?
  • Impossible de trouver des API Google pour Android SDK
  • Donnez-moi des suggestions ou des idées.

    4 Solutions collect form web for “Android – Générer un fichier CSV à partir de valeurs de table”

    Vous pouvez utiliser opencsv pour cela

    Téléchargez la bibliothèque à partir d'ici:

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

    Dans cela, vous pouvez trouver le fichier jar.

    Dans votre activité, utilisez ceci:

     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 } 

    Cela pourrait être utile. J'ai besoin de ';' En tant que séperateur entre les valeurs de résistance. Utilisez ',' en conséquence pour la génération CSV.

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

    Cela semble vraiment prometteur. Il prendra tout objet Java et le convertira en un fichier CSV:

    http://supercsv.sourceforge.net/

    Il est également possible de récupérer les données de la base de données au format CSV.

    Ajouter à @ Cocos2dx answer:

    Lors de l'interrogation à partir de db, vous pouvez avoir des champs nuls, dans mon cas, j'utilise un contrôleur pour récupérer les données dans une liste d'objets, mais si vous ne devez pas vérifier les valeurs nulles ou vides et les formater correctement (ou ils peuvent créer Votre table semble étrange):

     String[] details = { replaceNull(someObject.getId()), replaceNull(someObject.getName()) }; public static String replaceNull(String input) { return ((input == null || input.isEmpty()) ? " " : input); } writer.writeNext(details); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.