如何在Android中实现将sqlite导出为excel / csv文件?

阿迪蒂K

我正在开发将SQlite作为数据库的android应用程序。我想以编程方式从DB导出某些结果到excel文件格式,想将excel存储到本地设备路径中,我遇到了以下链接

那么,为Android应用程序实现“导出到Excel”的确切过程是什么?

阿迪蒂K

伙计们是我成功实施的答案

//new async task for file export to csv
private class ExportDatabaseCSVTask extends AsyncTask<String, String, Boolean> {
    private final ProgressDialog dialog = new ProgressDialog(SearchResultActivity.this);
    boolean memoryErr = false;

    // to show Loading dialog box
    @Override
    protected void onPreExecute() {
        this.dialog.setMessage("Exporting database...");
        this.dialog.show();
    }

    // to write process 
    protected Boolean doInBackground(final String... args) {

        boolean success = false;

        String currentDateString = new SimpleDateFormat(Constants.SimpleDtFrmt_ddMMyyyy).format(new Date());

        File dbFile = getDatabasePath("HLPL_FRETE.db");
        Log.v(TAG, "Db path is: " + dbFile); // get the path of db
        File exportDir = new File(Environment.getExternalStorageDirectory() + File.separator + Constants.FileNm.FILE_DIR_NM, "");

        long freeBytesInternal = new File(getApplicationContext().getFilesDir().getAbsoluteFile().toString()).getFreeSpace();           
        long megAvailable = freeBytesInternal / 1048576;

        if (megAvailable < 0.1) {               
            System.out.println("Please check"+megAvailable);
            memoryErr = true;               
        }else {             
            exportDirStr = exportDir.toString();// to show in dialogbox
            Log.v(TAG, "exportDir path::" + exportDir);
            if (!exportDir.exists()) {
                exportDir.mkdirs();
            }   
            try {
                List<SalesActivity> listdata = salesLst;
                SalesActivity sa = null;
                String lob = null;
                for (int index = 0; index < listdata.size();) {
                    sa = listdata.get(index);
                    lob = sa.getLob();
                    break;
                }
                if (Constants.Common.OCEAN_LOB.equals(lob)) {

                    file = new File(exportDir, Constants.FileNm.FILE_OFS + currentDateString + ".csv");
                } else {
                    file = new File(exportDir, Constants.FileNm.FILE_AFS + currentDateString + ".csv");
                }
                file.createNewFile();
                CSVWriter csvWrite = new CSVWriter(new FileWriter(file));


                // this is the Column of the table and same for Header of CSV
                // file
                if (Constants.Common.OCEAN_LOB.equals(lob)) {
                    csvWrite.writeNext(Constants.FileNm.CSV_O_HEADER);
                }else{
                    csvWrite.writeNext(Constants.FileNm.CSV_A_HEADER);
                }
                String arrStr1[] = { "SR.No", "CUTSOMER NAME", "PROSPECT", "PORT OF LOAD", "PORT OF DISCHARGE" };
                csvWrite.writeNext(arrStr1);

                if (listdata.size() > 0) {
                    for (int index = 0; index < listdata.size(); index++) {
                        sa = listdata.get(index);
                        String pol;
                        String pod;
                        if (Constants.Common.OCEAN_LOB.equals(sa.getLob())) {
                            pol = sa.getPortOfLoadingOENm();
                            pod = sa.getPortOfDischargeOENm();
                        } else {
                            pol = sa.getAirportOfLoadNm();
                            pod = sa.getAirportOfDischargeNm();
                        }
                        int srNo = index;
                        String arrStr[] = { String.valueOf(srNo + 1), sa.getCustomerNm(), sa.getProspectNm(), pol, pod };
                        csvWrite.writeNext(arrStr);
                    }
                    success = true;
                }
                csvWrite.close();

            } catch (IOException e) {
                Log.e("SearchResultActivity", e.getMessage(), e);
                return success;
            }
        }
        return success;
    }

    // close dialog and give msg
    protected void onPostExecute(Boolean success) {
        if (this.dialog.isShowing()) {
            this.dialog.dismiss();
        }
        if (success) {
            dialogBox(Constants.Flag.FLAG_EXPRT_S);
        } else {                
            if (memoryErr==true) {
                dialogBox(Constants.Flag.FLAG_MEMORY_ERR);
            } else {
                dialogBox(Constants.Flag.FLAG_EXPRT_F);
            }
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Excel中为CSV文件禁用SYLK警告?

来自分类Dev

如何在Android中将数据导出到CSV文件?

来自分类Dev

如何在python 2.7中将eigenvector_centrality的结果导出为networkx的csv文件?

来自分类Dev

导出大型CSV文件

来自分类Dev

导出到CSV文件

来自分类Dev

导出CSV文件

来自分类Dev

导出 csv 文件的问题

来自分类Dev

Sqlite数据到Android中的CSV文件

来自分类Dev

如何从CSV文件返回

来自分类Dev

如何截断csv文件?

来自分类Dev

如何在Android Studio中将CSV文件解析为数组

来自分类Dev

CSV文件中的行数

来自分类Dev

.csv文件在Highstocks中

来自分类Dev

CSV文件中的空行

来自分类Dev

如何在从 Android Studio 中的 CSV 文件导入时从 SQLite DB 中删除特殊字符?

来自分类Dev

将BCP文件导出为CSV格式

来自分类常见问题

在Julia中导出为CSV文件

来自分类Dev

将表格导出为CSV文件

来自分类Dev

在Julia中导出为CSV文件

来自分类Dev

导出为CSV而不是XLS文件

来自分类Dev

将表格导出为CSV文件

来自分类Dev

将多个文件的内容导出为 CSV

来自分类Dev

我想将数组导出为 CSV 文件

来自分类Dev

Excel中的.csv文件与Libre Office中的.csv文件

来自分类常见问题

如何在Excel 2013中正确显示.csv文件?

来自分类Dev

SurveyMonkey API:导出受访者的csv或excel文件?

来自分类Dev

VBA Excel将文件导出为.csv,同时将数据保留在适当的列中

来自分类Dev

在PHP中为“用户名”导出CSV文件

来自分类Dev

从txt文件中获取数据并将其导出为CSV