5
私はデータベースを使用していて、そのデータベースファイルを.db extention with sdcardに格納しているアプリケーションを開発しています。今、この "dbファイルを.csv"に変換したいのでユーザーはその.csvファイルを開くことができ、すべてのデータを簡単に見ることができます。データベース.dbファイルを.csvに変換する
私はデータベースを使用していて、そのデータベースファイルを.db extention with sdcardに格納しているアプリケーションを開発しています。今、この "dbファイルを.csv"に変換したいのでユーザーはその.csvファイルを開くことができ、すべてのデータを簡単に見ることができます。データベース.dbファイルを.csvに変換する
私は自分自身の質問の答えを得ました:ライブラリOpenCSVをダウンロードし、アプリケーションにopencsv.jarファイルを追加しました。次のコード:
class ExportDatabaseCSVTask extends AsyncTask<String, Void, Boolean>{
private final ProgressDialog dialog = new ProgressDialog(MyDatabaseActivity.this);
// can use UI thread here
@Override
protected void onPreExecute(){
this.dialog.setMessage("Exporting database...");
this.dialog.show();
}
// automatically done on worker thread (separate from UI thread)
protected Boolean doInBackground(final String... args){
File dbFile=getDatabasePath("mydb.db");
// DbClass DBob = new DbClass(MyDatabaseActivity.this);
File exportDir = new File(Environment.getExternalStorageDirectory(), "");
if (!exportDir.exists()) {
exportDir.mkdirs();
}
File file = new File(exportDir, "excerDB.csv");
try {
file.createNewFile();
CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
//SQLiteDatabase db = DBob.getReadableDatabase();
Cursor curCSV=mydb.rawQuery("select * from " + TableName_ans,null);
// Cursor curCSV = db.rawQuery("SELECT * FROM table_ans12",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;
}
}
// can use UI thread here
@Override
protected void onPostExecute(final Boolean success) {
if (this.dialog.isShowing()) {
this.dialog.dismiss();
}
if (success) {
Toast.makeText(MyDatabaseActivity.this, "Export successful!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MyDatabaseActivity.this, "Export failed", Toast.LENGTH_SHORT).show();
}
}
}
毎月新しいレコードに入れるレコードは.csvまたはExcelです。例えば「コラムA」には1月のレコードがあり、「コラムB」には2月のレコードがあります..... – Pritesh