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 |