Le tableur le plus couramment utilisé est MS Excel. Ce programme est disponible dans le cadre de la suite bureautique de Microsoft. D'autre part, lorsque nous parlons d'android, nous parlons de développement mobile.

Et si vous avez des données dans votre application mobile que vous voulez analyser dans MS Excel. Dans ce cas, vous devez exporter les données de la base de données SQLite vers Excel. Plutôt que d'inventer de nouvelles façons de le faire, ce tutoriel vous montre comment faire avec des solutions déjà existantes en quelques minutes.

(a). Solution 1 : Utiliser SQLiteToExcel

Il s'agit d'une bibliothèque légère pour convertir une base de données SQLite en Excel et convertir Excel en SQLite.

Comment l'utiliser ?

Étape 1 : L'installer

Comme il s'agit d'une solution tierce, vous devez l'installer via gradle. Ajoutez la déclaration d'implémentation suivante dans votre build.gradle et synchronisez :

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

Étape 2 : Ajouter les permissions nécessaires

Dans ce cas, vous avez besoin de la permission de lire à partir du stockage externe de l'appareil. Ainsi, ajoutez la permission suivante dans votre AndroidManifest.xml :

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

Étape 3 : Exportation des données

Par exemple pour exporter la base de données sqlite à l'emplacement par défaut, commencez par instancier la classe SqliteToExcel, en passant le contexte ainsi que le nom de la base de données comme paramètres via le constructeur :

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

Si vous voulez exporter et enregistrer vers une destination personnalisée, alors utilisez la ligne ci-dessous :

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

Et si vous préférez n'exporter qu'un seul tableau, et l'exporter vers une seule feuille Excel. Dans ce cas, vous pouvez utiliser la fonction exportSingleTable(), en passant le nom de la table de la base de données, le nom de la feuille excel et un callback avec trois méthodes :

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

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

Et si vous voulez exporter une liste de tables de la base de données vers Excel, vous utilisez la fonction 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) {

     }
});

Pour exporter chaque table de la base de données vers une feuille excel, vous utilisez la fonction exportAllTables() comme suit :

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

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

Si vous voulez exclure des colonnes spécifiques, définissez-les dans une arrayist et définissez-les via la fonction setExcludeColumns(), puis vous passez cette arraylist à cette méthode :

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

Comment importer d'Excel vers SQLite

Cette bibliothèque vous permet également d'importer d'excel vers une base de données sqlite. Dans ce cas, vous utiliserez la classe ExcelToSQLite au lieu de la classe SqliteToExcel qui a été utilisée lors de l'exportation.

Commencez donc par rendre instantanée la classe ExcelToSQLite et passez le contexte ainsi que le nom de la base de données :

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

Pour déposer une table pendant l'importation de l'excel, utilisez le code suivant :

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

Si vous voulez exporter la feuille Excel du dossier assets dans android dans la base de données sqlite, utilisez la fonction importFromAsset(), en passant dans le nom du fichier excel .xls et un callback import listener :

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

    }

    @Override
    public void onCompleted(String dbName) {

    }

    @Override
    public void onError(Exception e) {

    }
});

Si vous voulez importer excel depuis un répertoire dans la base de données, utilisez la fonction importFromFile() et passez le chemin du répertoire :

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

    }

    @Override
    public void onCompleted(String dbName) {

    }

    @Override
    public void onError(Exception e) {

    }
});

Exemple complet

Télécharger l'exemple complet.

Référence

Ci-dessous les liens de référence du code :

Numéro Lien
1. Télécharger le code
2. Lire la suite
3. Suivre l'auteur du code

Catégorisé: