Используете кнопку для экспорта sqlite db в Excel-читаемый файл (возможно, csv)? - PullRequest
4 голосов
/ 15 ноября 2010

Я адаптировал этот учебник (http://www.screaming -penguin.com / node / 7749) к приложению Android, которое я создал, чтобы позволить нажатие кнопки для экспорта текущей базы данных на SD-карту пользователя.Это работает безупречно.

Но я боюсь, что пользователи моего приложения будут незнакомы с файлом db, и я ищу способ преобразовать его в более удобный для пользователя формат.Я наткнулся на эту ветку (http://groups.google.com/group/android-beginners/browse_thread/thread/4e53ebca14daecfc),, которая рекомендует «запрашивать данные из базы данных и записывать данные в CSV-файл».

Я надеялся, что кто-то может указать мне правильное направление, чтобы начать выяснять, каксделать это. Мне трудно отследить больше информации о конкретном методе.

Или имеет смысл просто кратко объяснить, как читать и получать доступ к файлам .db?

Спасибо

РЕДАКТИРОВАТЬ: У меня также есть вопрос о процессе экспорта sqlite, который я думаю, я просто задам здесь, а не создать новый вопрос. Есть ли способ изменить код нижечтобы каждый экспорт получал либо строковое представление даты, либо только одну цифру, добавленную к нему? Прямо сейчас, если вы экспортируете второй раз, он автоматически перезаписывает старый файл. Спасибо.

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;
        }

    }

1 Ответ

2 голосов
/ 15 ноября 2010

Я надеялся, что кто-нибудь может указать мне правильное направление, чтобы начать выяснять, как это сделать.

Чтобы прочитать данные, используйте rawQuery().

Для записи данных используйте Java I / O . Есть также open source CSV библиотеки для Java, которые могут работать на Android.

Есть ли способ изменить приведенный ниже код так, чтобы каждый экспорт получал либо строковое представление даты, либо только одну цифру, добавленную к ней?

Используйте конкатенацию строк, чтобы добавить все, что вы хотите к имени файла.

Также, пожалуйста, избавьтесь от:

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

и заменить его на:

File dbFile=getDatabasePath("data");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...