栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Android中将数据库记录转换为CSV文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Android中将数据库记录转换为CSV文件?

嗨,喜欢这样。

package com.my.CSVcreation;import java.io.File;import java.io.FileWriter;import java.io.IOException;import android.app.Activity;import android.app.ProgressDialog;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.os.AsyncTask;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class CSVCreationActivity extends Activity {    TextView empidtxt,empnametxt,empsaltxt;    EditText empidet,empnameet,empsalet;    Button insetbt,viewbt;    SQLiteDatabase myDatabase=null;    String Database_Name="employeedata";    String Table_Name="employeedetails";    Cursor c1,c2;    @Override    public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    empidtxt=(TextView)findViewById(R.id.tv1);    empnametxt=(TextView)findViewById(R.id.tv2);    empsaltxt=(TextView)findViewById(R.id.tv3);    empidet=(EditText)findViewById(R.id.et1);    empnameet=(EditText)findViewById(R.id.et2);    empsalet=(EditText)findViewById(R.id.et3);    insetbt=(Button)findViewById(R.id.bt1);    viewbt=(Button)findViewById(R.id.bt2);    try {        myDatabase=this.openOrCreateDatabase(Database_Name, MODE_PRIVATE, null);        System.out.println("databse has been creates.....");        myDatabase.execSQL("create table if not exists " + Table_Name + "(empid integer(10),empname varchar(50),empsal integer(10))");        System.out.println("table has been created.....");        c1 = myDatabase.rawQuery("select * from " + Table_Name, null);        c1.moveToFirst();        int count1 = c1.getCount();        System.out.println("columns --->" + count1);        if (count1 == 0) { myDatabase.execSQL("insert into "+Table_Name+ "(empid,empname,empsal)" +"values(101,'asha',20000)"); System.out.println("data base has been inserted.....");        }        c2 = myDatabase.rawQuery("select * from " + Table_Name, null);        c2.moveToFirst();        int count2 = c2.getCount();        System.out.println("columns --->" + count2);        final int column1 = c2.getColumnIndex("empid");        final int column2 = c2.getColumnIndex("empname");        final int column3 = c2.getColumnIndex("empsal");        insetbt.setonClickListener(new View.onClickListener() {   @Override public void onClick(View v) {     if (c2 != null) {         do {  int id = c2.getInt(column1);  String name = c2.getString(column2);  int salary = c2.getInt(column3);  System.out.println("empID --> "+id);  System.out.println("empNAME --> "+name);  System.out.println("empsalalry --> "+salary);         } while(c2.moveTonext());     }   }        });        viewbt.setonClickListener(new View.onClickListener() {    @Override public void onClick(View v) {     try {         new ExportDatabaseCSVTask().execute("");     } catch(Exception ex) {         Log.e("Error in MainActivity",ex.toString());     } }        });    }    catch(SQLException ex) { ex.printStackTrace(); }  }public class ExportDatabaseCSVTask extends AsyncTask<String, Void, Boolean> {    private final ProgressDialog dialog = new ProgressDialog(CSVCreationActivity.this);    @Override    protected void onPreExecute() {        this.dialog.setMessage("Exporting database...");        this.dialog.show();    }    protected Boolean doInBackground(final String... args) {        File dbFile = getDatabasePath("myDatabase.db");        System.out.println(dbFile);  // displays the data base path in your logcat          File exportDir = new File(Environment.getExternalStorageDirectory(), "");        if (!exportDir.exists()) { exportDir.mkdirs(); }        File file = new File(exportDir, "myfile.csv");        try { file.createNewFile(); CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); Cursor curCSV = myDatabase.rawQuery("select * from " + Table_Name,null); csvWrite.writeNext(curCSV.getColumnNames()); while(curCSV.moveTonext()) {     String arrStr[] ={curCSV.getString(0),curCSV.getString(1),curCSV.getString(2)};     // curCSV.getString(3),curCSV.getString(4)};     csvWrite.writeNext(arrStr); } csvWrite.close(); curCSV.close(); return true;        } catch(SQLException sqlEx) { Log.e("MainActivity", sqlEx.getMessage(), sqlEx); return false;        } catch (IOException e) { Log.e("MainActivity", e.getMessage(), e); return false;        }    }    protected void onPostExecute(final Boolean success) {        if (this.dialog.isShowing()) { this.dialog.dismiss(); }        if (success) { Toast.makeText(CSVCreationActivity.this, "Export successful!", Toast.LENGTH_SHORT).show();        } else { Toast.makeText(CSVCreationActivity.this, "Export failed", Toast.LENGTH_SHORT).show();        }    }}

然后,您将从以下站点https://pre.google.com/p/secrets-for-
android/source/checkout
获得CSVReader和CSVWriter文件。祝一切顺利。

不要忘记为清单文件添加权限

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号