How to implement Export sqlite To excel/csv file in android?

前端 未结 5 832
無奈伤痛
無奈伤痛 2020-11-28 22:57

I am developing android app where SQlite as a database.I want to export certain result from DB in to excel file format programatically, want to store that excel to local dev

5条回答
  •  野性不改
    2020-11-28 23:40

    this is my answer: And this works ! Excel file is the same as a .csv file. Step 1: download this jar file https://code.google.com/p/opencsv/downloads/detail?name=opencsv-2.4.jar&can=2&q=

    Step 2:

    private class ExportDatabaseCSVTask extends AsyncTask{
        private final ProgressDialog dialog = new ProgressDialog(MainActivity.this);
        @Override
        protected void onPreExecute() {
            this.dialog.setMessage("Exporting database...");
            this.dialog.show();
        }
    
        protected String doInBackground(final String... args){
            File exportDir = new File(Environment.getExternalStorageDirectory(), "");
            if (!exportDir.exists()) {
                exportDir.mkdirs();
            }
    
            File file = new File(exportDir, "ExcelFile.csv");
            try {
    
                file.createNewFile();
                CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
    
                //data     
                ArrayList listdata= new ArrayList();
                listdata.add("Aniket");
                listdata.add("Shinde");
                listdata.add("pune");
                listdata.add("anything@anything");
                //Headers
                String arrStr1[] ={"First Name", "Last Name", "Address", "Email"};
                csvWrite.writeNext(arrStr1);
    
                String arrStr[] ={listdata.get(0), listdata.get(1), listdata.get(2), listdata.get(3)};
                csvWrite.writeNext(arrStr);   
    
                csvWrite.close();
                return "";
            }
            catch (IOException e){
                Log.e("MainActivity", e.getMessage(), e);
                return "";
            }
        }
    
        @SuppressLint("NewApi")
        @Override
        protected void onPostExecute(final String success) {
    
            if (this.dialog.isShowing()){
                this.dialog.dismiss();
            }
            if (success.isEmpty()){
                Toast.makeText(MainActivity.this, "Export successful!", Toast.LENGTH_SHORT).show();
            }
            else {
                Toast.makeText(MainActivity.this, "Export failed!", Toast.LENGTH_SHORT).show();
            }
        }
    } 
    

    Write Async task in your .java file

    Step3: Add call this task

    ExportDatabaseCSVTask task=new ExportDatabaseCSVTask();
    task.execute();
    

    ExcelFile.csv file will be created in your sdcard.

提交回复
热议问题