Die am häufigsten verwendete Tabellenkalkulation ist MS Excel. Dieses Programm ist als Teil der Microsoft Desktop Suite erhältlich. Wenn wir jedoch über Android sprechen, geht es um die Entwicklung von Mobiltelefonen.

Was ist, wenn Sie Daten in Ihrer mobilen Anwendung haben, die Sie in MS Excel analysieren möchten? In diesem Fall müssen Sie die Daten aus der SQLite-Datenbank nach Excel exportieren. Anstatt neue Wege dafür zu erfinden, zeigt Ihnen dieses Tutorial, wie Sie mit bereits existierenden Lösungen in wenigen Minuten arbeiten können.

(a). Lösung 1: SQLiteToExcel verwenden

Dies ist eine leichtgewichtige Bibliothek zum Konvertieren von SQLite-Datenbanken in Excel und zum Konvertieren von Excel in SQLite.

Wie verwenden Sie sie?

Schritt 1: Installieren

Da es sich um eine Lösung eines Drittanbieters handelt, müssen Sie sie über gradle installieren. Fügen Sie die folgende Implementierungsanweisung in Ihre build.gradle ein und synchronisieren Sie:

implementation 'com.ajts.androidmads.SQLite2Excel:library:1.0.4'

Schritt 2: Fügen Sie die erforderlichen Berechtigungen hinzu

In diesem Fall benötigen Sie die Berechtigung, vom externen Speicher des Geräts zu lesen. Fügen Sie also die folgende Berechtigung in Ihrer AndroidManifest.xml hinzu:

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

Schritt 3: Daten exportieren

Um zum Beispiel die Sqlite-Datenbank an den Standardspeicherort zu exportieren, instanziieren Sie zunächst die Klasse SqliteToExcel und übergeben den Kontext sowie den Datenbanknamen als Parameter über den Konstruktor:

SqliteToExcel sqliteToExcel = new SqliteToExcel(this, "helloworld.db");

Wenn Sie exportieren und an einem benutzerdefinierten Zielort speichern möchten, verwenden Sie die folgende Zeile:

SqliteToExcel sqliteToExcel = new SqliteToExcel(this, "helloworld.db", directory_path);

Was ist, wenn Sie nur eine einzelne Tabelle exportieren möchten und diese in ein einzelnes Excel-Blatt exportieren möchten? In diesem Fall können Sie die Funktion exportSingleTable() verwenden, indem Sie den Namen der Datenbanktabelle, den Namen der Excel-Tabelle und einen Callback mit drei Methoden übergeben:

sqliteToExcel.exportSingleTable("table1", "table1.xls", new SQLiteToExcel.ExportListener() {
     @Override
     public void onStart() {

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

Und wenn Sie eine Liste von Tabellen in der Datenbank nach Excel exportieren möchten, verwenden Sie die Funktion exportSpecificTables():

sqliteToExcel.exportSpecificTables(tablesList, "table1.xls", new SQLiteToExcel.ExportListener() {
     @Override
     public void onStart() {

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

Um jede Tabelle in der Datenbank in ein Excel-Blatt zu exportieren, verwenden Sie die Funktion exportAllTables() wie folgt:

sqliteToExcel.exportAllTables("table1.xls", new SQLiteToExcel.ExportListener() {
     @Override
     public void onStart() {

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

Wenn Sie bestimmte Spalten ausschließen wollen, definieren Sie diese in einer Arrayliste und setzen sie mit der Funktion setExcludeColumns(), dann übergeben Sie diese Arrayliste an diese Methode:

ArrayList<String> columnsToExclude = new ArrayList<String>();
columnsToExclude.add("income_id");
sqliteToExcel.setExcludeColumns(columnsToExclude);
...
sqliteToExcel.export...

Wie importiert man von Excel nach SQLite?

Diese Bibliothek ermöglicht auch den Import von Excel in die SQLite-Datenbank. In diesem Fall verwenden Sie die Klasse ExcelToSQLite anstelle der Klasse SqliteToExcel, die beim Exportieren verwendet wurde.

Beginnen Sie also mit dem Aufruf von ExcelToSQLite und übergeben Sie den Kontext sowie den Datenbanknamen:

ExcelToSQLite excelToSQLite = new ExcelToSQLite(getApplicationContext(), "helloworld.db");

Um eine Tabelle beim Importieren der Excel-Datei zu löschen, verwenden Sie den folgenden Code:

ExcelToSQLite excelToSQLite = new ExcelToSQLite(getApplicationContext(), "helloworld.db", true);

Wenn Sie eine Excel-Tabelle aus dem Assets-Ordner in Android in eine Sqlite-Datenbank exportieren möchten, verwenden Sie die Funktion importFromAsset() und übergeben Sie den Namen der Excel-Datei .xls sowie einen Import-Listener-Callback:

excelToSQLite.importFromAsset("assetFileName.xls", new ExcelToSQLite.ImportListener() {
    @Override
    public void onStart() {

    }

    @Override
    public void onCompleted(String dbName) {

    }

    @Override
    public void onError(Exception e) {

    }
});

Wenn Sie Excel aus einem Verzeichnis in die Datenbank importieren wollen, verwenden Sie die Funktion importFromFile() und übergeben Sie den Verzeichnispfad:

excelToSQLite.importFromFile(directory_path, new ExcelToSQLite.ImportListener() {
    @Override
    public void onStart() {

    }

    @Override
    public void onCompleted(String dbName) {

    }

    @Override
    public void onError(Exception e) {

    }
});

Full Example

Download das vollständige Beispiel.

Referenz

Nachfolgend finden Sie Links zu Code-Referenzen:

Nummer Link
1. Code herunterladen
2. Mehr lesen
3. Dem Autor des Codes folgen