开发者

Using a button to export sqlite db to an excel-readable file (perhaps csv)?

I adapted this tutorial (http://www.screaming-penguin.com/node/7749) to an Android app I've built to allow for a button press to export the current database to the user's sdcard. It works flawlessly.

But I'm afraid that users of my app would be unfamiliar with the db file, and I'm looking for a way to convert that to a more user-friendly format. I came across this thread (http://groups.google.com/group/android-beginners/browse_thread/thread/4e53ebca14daecfc), which recommends "querying data from the database and writing the data into a csv file."

I was hoping someone could point me in the right direction to begin figuring out how to do this. I'm finding it hard to track down more information about the specific method.

Or does it make more sense to just explain in a short "about" how to read and access .db files?

Thanks

EDIT: I also have a question about the sqlite export process, which I think I'll just ask here rather than create a new question. Is there a way 开发者_如何学运维to modify the code below so that each export would receive either a string representation of the date or just a single numeral appended to it? Right now if you export a second time, it automatically overwrites the old file. Thanks.

protected Boolean doInBackground(final String... args) {

        File dbFile = new File(Environment.getDataDirectory() + 
                "/data/com.example.example/databases/data");

        File exportDir = new File(Environment.getExternalStorageDirectory(), "exampledata");

        if (exportDir.exists()) {
            exportDir.mkdirs();
        }

        File file = new File(exportDir, dbFile.getName());

        try {
            file.createNewFile();
            this.copyFile(dbFile, file);
            return true;
        } catch(IOException e) {
            Log.e(MyApplication.APP_NAME, e.getMessage(), e);
            return false;
        }

    }


I was hoping someone could point me in the right direction to begin figuring out how to do this.

To read in the data, use rawQuery().

To write the data, use Java I/O. There are also open source CSV libraries for Java that may work on Android.

Is there a way to modify the code below so that each export would receive either a string representation of the date or just a single numeral appended to it?

Use string concatenation to add whatever you want to the filename.

Also, please get rid of:

File dbFile = new File(Environment.getDataDirectory() + 
                "/data/com.example.example/databases/data");

and replace it with:

File dbFile=getDatabasePath("data");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜