Archivo del blog

jueves, 12 de julio de 2018

Conversión de la base de datos SQLite a Excel y Excel a los datos SQLite en Android

Base de datos SQLite

Introducción
En este artículo, aprenderemos cómo exportar la base de datos SQLite de Android a Excel o Importar Excel a la base de datos SQLite. Podemos usar la biblioteca SQLiteToExcel para realizar estas funcionalidades.
SQLiteToExcel
Es una biblioteca ligera para convertir la base de datos SQLite a Excel y convertir Excel a SQLite y está abierta en GitHub. Puedes encontrar la Biblioteca en GitHub . Es de tamaño pequeño y su tamaño es alrededor de "16kb" solamente. Esta biblioteca funciona con "apache - poi".
He dividido esta Implementación en 4 pasos, como se muestra a continuación.
Paso 1
Creando un nuevo proyecto con Android Studio
Paso 2

Configuración de la biblioteca y AndroidManifest para el proyecto
Paso 3
Creando base de datos SQLite  
Paso 4
Exportar la base de datos SQLite a Excel.
Paso 5
Importación de Excel en SQLite.
Sin más introducción, saltaremos a la parte de codificación. 

Paso 1: crear un nuevo proyecto con Android Studio
  1. Abra Android Studio y seleccione Crear nuevo proyecto.
  2. Nombre el proyecto como su deseo y seleccione su plantilla de actividad.

    Base de datos SQLite
  1. Haga clic en el botón finalizar " para crear un nuevo proyecto en Android Studio.
Paso 2: configurar la biblioteca y AndroidManifest para el proyecto
  1. Abra su archivo build.gradle de nivel de aplicación y agregue la biblioteca SQLiteToExcel usando la siguiente línea. 

    compilar 'com.ajts.androidmads.SQLite2Excel: library: 1.0.2'
  1. Luego haga clic en Sincronizar ahora " para agregar la biblioteca.
  2. Ahora abra su archivo de manifiesto (AndroidManifest.xml) y el siguiente permiso. 

    <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" />
Paso 3 - Creando base de datos SQLite
  1. Somos conscientes del uso de SQLite en Android. Si desea saber cómo implementar operaciones de SQLite, haga clic aquí .
  2. Los códigos dados en el enlace muestran cómo crear la implementación de SQLite en Android con SQLiteOpenHelper " y cómo realizar las operaciones de DB con SQLite. El código anterior generará bases de datos SQLite y tablas.
Paso 4 - Exportar la base de datos SQLite a Excel
  1. Abra su Java o cualquier actividad que desee agregar la funcionalidad y agregue las siguientes líneas para inicializar la biblioteca. Al usar esto, puede exportar el archivo a la ubicación predeterminada. 

    SqliteToExcel sqliteToExcel = new SqliteToExcel (esto, "helloworld.db");
  1. Si desea exportar el archivo en la ruta preferida del usuario, use lo siguiente. 

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

    Aquí, "helloworld.db" es el nombre de la base de datos SQLite creada en la aplicación Android.
  1. En este paso, aprenderemos cómo llamar a la biblioteca para exportar la base de datos SQLite como archivo de Excel a la ubicación predeterminada o la ubicación definida por el usuario. Esta biblioteca nos permite exportar una sola tabla o una lista de tablas o toda la base de datos como Excel.
SINGLE TABLE
Las siguientes líneas se utilizan para exportar una sola tabla.
  1. sqliteToExcel.exportSingleTable ( "table1" ,  "table1.xls" ,  new SQLiteToExcel.ExportListener () {  
  2.      @Anular  
  3.      public void  onStart () {   
  4.      }  
  5.      @Anular  
  6.      public void  onCompleted (String filePath) {   
  7.      }  
  8.      @Anular  
  9.      public void  onError (Exception e) {   
  10.      }  
  11. });  
LISTA DE MESAS
Las siguientes líneas se utilizan para exportar una lista de tablas.
  1. sqliteToExcel.exportSingleTable (table1List,  "table1.xls" ,  new SQLiteToExcel.ExportListener () {  
  2.      @Anular  
  3.      public void  onStart () {   
  4.      }  
  5.      @Anular  
  6.      public void  onCompleted (String filePath) {   
  7.      }  
  8.      @Anular  
  9.      public void  onError (Exception e) {   
  10.      }  
  11. });  
BASE DE DATOS ENTERA
Las siguientes líneas se utilizan para exportar una lista de tablas.
  1. sqliteToExcel. exportAllTables ( "table1.xls" ,  new  SQLiteToExcel.ExportListener () {  
  2.      @Anular  
  3.      public void  onStart () {   
  4.      }  
  5.      @Anular  
  6.      public void  onCompleted (String filePath) {   
  7.      }  
  8.      @Anular  
  9.      public void  onError (Exception e) {   
  10.      }  
  11. });  
Paso 5: Importación de Excel en la base de datos SQLite
En este paso, aprenderemos cómo llamar a la biblioteca para importar archivos de Excel a la base de datos SQLite.
  1. Las siguientes líneas se utilizan para inicializar la biblioteca para la conversión de Excel a la base de datos. 

    ExcelToSQLite excelToSQLite = new ExcelToSQLite (getApplicationContext (), "helloworld.db");
  1. Si desea importar tablas con la colocación de tablas existentes en su base de datos, use lo siguiente. 

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

    Aquí, helloworld.db " es el nombre de la base de datos SQLite creada en la aplicación Android.
  1. Podemos importar los archivos de Excel de la carpeta de Activos o de la Ruta de Directorio con nombre de archivo y extensiones.
IMPORTACIÓN DE ACTIVOS
Utilice lo siguiente para importar la carpeta excel de activos de la aplicación.
  1. excelToSQLite.importFromAsset ( "assetFileName.xls" ,  nuevo  ExcelToSQLite.ImportListener () {  
  2.     @Anular  
  3.     public void  onStart () {   
  4.   
  5.     }  
  6.   
  7.     @Anular  
  8.     public void  onCompleted (String dbName) {   
  9.   
  10.     }  
  11.   
  12.     @Anular  
  13.     public void  onError (Exception e) {   
  14.   
  15.     }  
  16. });  
IMPORTAR DEL DIRECTORIO
Utilice las siguientes líneas para importar archivos de Excel desde la ruta definida o definida por el usuario.
  1. excelToSQLite.importFromFile (directory_path,  new  ExcelToSQLite.ImportListener () {  
  2.     @Anular  
  3.     public void  onStart () {   
  4.   
  5.     }  
  6.   
  7.     @Anular  
  8.     public void  onCompleted (String dbName) {   
  9.   
  10.     }  
  11.   
  12.     @Anular  
  13.     public void  onError (Exception e) {   
  14.   
  15.     }  
  16. });  
Código completo de la aplicación
Código completo de SQLite2ExcelActivity.java
  1. paquete  com.ajts.androidmads.sqlite2xlDemo;  
  2.   
  3. importar  android.os.Bundle;  
  4. importar  android.os.Environment;  
  5. import  android.support.v7.app.AppCompatActivity;  
  6. importar  android.view.MenuItem;  
  7. importar  android.view.View;  
  8. importar  android.widget.Button;  
  9. importar  android.widget.EditText;  
  10. importar  android.widget.ListView;  
  11.   
  12. import  com.ajts.androidmads.library.SQLiteToExcel;  
  13. import  com.ajts.androidmads.sqlite2xlDemo.adapter.CustomAdapter;  
  14. import  com.ajts.androidmads.sqlite2xlDemo.db.DBHelper;  
  15. import  com.ajts.androidmads.sqlite2xlDemo.db.DBQueries;  
  16. import  com.ajts.androidmads.sqlite2xlDemo.model.Users;  
  17. import  com.ajts.androidmads.sqlite2xlDemo.util.Utils;  
  18.   
  19. importar  java.io.File;  
  20. import  java.util.ArrayList;  
  21. import  java.util.List;  
  22.   
  23. la clase pública  SQLite2ExcelActivity  extiende  AppCompatActivity {   
  24.   
  25.     EditText edtUser, edtContactNo;  
  26.     Botón btnSaveUser, btnExport;  
  27.     ListView lvUsers;  
  28.     CustomAdapter lvUserAdapter;  
  29.     Lista <Users> usersList =  new  ArrayList <> ();  
  30.   
  31.     DBHelper dbHelper;  
  32.     DBQueries dbQueries;  
  33.   
  34.     @Anular  
  35.     void protegido  onCreate (Bundle savedInstanceState) {   
  36.         super .onCreate (savedInstanceState);  
  37.         setContentView (R.layout.activity_sqlite_2_xl);  
  38.   
  39.         afirmar getSupportActionBar ()! =  null ;  
  40.         getSupportActionBar (). setDisplayHomeAsUpEnabled ( true );  
  41.   
  42.         dbHelper =  new  DBHelper (getApplicationContext ());  
  43.         dbQueries =  new  DBQueries (getApplicationContext ());  
  44.   
  45.         edtUser = (EditText) findViewById (R.id.edt_user);  
  46.         edtContactNo = (EditText) findViewById (R.id.edt_c_no);  
  47.         btnSaveUser = (Button) findViewById (R.id.btn_save_user);  
  48.         btnExport = (Button) findViewById (R.id.btn_export);  
  49.   
  50.         lvUsers = (ListView) findViewById (R.id.lv_users);  
  51.         dbQueries.open ();  
  52.         usersList = dbQueries.readUsers ();  
  53.         lvUserAdapter =  new  CustomAdapter (getApplicationContext (), usersList);  
  54.         lvUsers.setAdapter (lvUserAdapter);  
  55.         dbQueries.close ();  
  56.   
  57.         btnSaveUser.setOnClickListener ( new  View.OnClickListener () {  
  58.             @Anular  
  59.             public void  onClick (Ver vista) {   
  60.                 if  (validate (edtUser) && validate (edtContactNo)) {  
  61.                     dbQueries.open ();  
  62.                     Users users =  new  Users (edtUser.getText (). ToString (), edtContactNo.getText (). ToString ());  
  63.                     dbQueries.insertUser (usuarios);  
  64.                     usersList = dbQueries.readUsers ();  
  65.                     lvUserAdapter =  new  CustomAdapter (getApplicationContext (), usersList);  
  66.                     lvUsers.setAdapter (lvUserAdapter);  
  67.                     dbQueries.close ();  
  68.                     Utils.showSnackBar (ver, "Insertado correctamente  );  
  69.                 }  
  70.             }  
  71.         });  
  72.   
  73.         btnExport.setOnClickListener ( new  View.OnClickListener () {  
  74.             @Anular  
  75.             public void  onClick (  vista de vista final ) {   
  76.                 String directory_path = Environment.getExternalStorageDirectory (). GetPath () +  "/ Backup /" ;  
  77.                 Archivo file =  new  File (directory_path);  
  78.                 if  (! file.exists ()) {  
  79.                     file.mkdirs ();  
  80.                 }  
  81.                 // Exportar SQLite DB como EXCEL FILE  
  82.                 SQLiteToExcel sqliteToExcel =  new  SQLiteToExcel (getApplicationContext (), DBHelper.DB_NAME, directory_path);  
  83.                 sqliteToExcel.exportAllTables ( "users.xls" ,  new SQLiteToExcel.ExportListener () {  
  84.                     @Anular  
  85.                     public void  onStart () {   
  86.   
  87.                     }  
  88.   
  89.                     @Anular  
  90.                     public void  onCompleted (String filePath) {   
  91.                         Utils.showSnackBar (ver,  "exportado con éxito" );  
  92.                     }  
  93.   
  94.                     @Anular  
  95.                     public void  onError (Exception e) {   
  96.   
  97.                     }  
  98.                 });  
  99.             }  
  100.         });  
  101.     }  
  102.   
  103.     boolean  validate (EditText editText) {  
  104.         if  (editText.getText (). toString (). length () == 0) {  
  105.             editText.setError ( "Campo requerido" );  
  106.             editText.requestFocus ();  
  107.         }  
  108.         return  editText.getText (). toString (). length ()> 0;  
  109.     }  
  110.   
  111.     @Anular  
  112.     public boolean  onOptionsItemSelected (elemento MenuItem) {   
  113.         if  (item.getItemId () == android.R.id.home)  
  114.             onBackPressed ();  
  115.         devolver verdadero ;   
  116.     }  
  117.   
Código completo de Excel2SQLiteActivity.java
  1. paquete  com.ajts.androidmads.sqlite2xlDemo;  
  2.   
  3. importar  android.os.Bundle;  
  4. importar  android.os.Environment;  
  5. import  android.support.v7.app.AppCompatActivity;  
  6. importar  android.view.MenuItem;  
  7. importar  android.view.View;  
  8. importar  android.widget.Button;  
  9. importar  android.widget.EditText;  
  10.   
  11. import  com.ajts.androidmads.library.ExcelToSQLite;  
  12. import  com.ajts.androidmads.sqlite2xlDemo.db.DBHelper;  
  13. import  com.ajts.androidmads.sqlite2xlDemo.db.DBQueries;  
  14. import  com.ajts.androidmads.sqlite2xlDemo.util.Utils;  
  15.   
  16. importar  java.io.File;  
  17.   
  18. la clase pública  Excel2SQLiteActivity  extiende  AppCompatActivity {   
  19.   
  20.     EditText edtFilePath;  
  21.     Botón btnImport;  
  22.     DBHelper dbHelper;  
  23.     DBQueries dbQueries;  
  24.     String directory_path = Environment.getExternalStorageDirectory (). GetPath () + "/Backup/users.xls" ;  
  25.   
  26.     @Anular  
  27.     void protegido  onCreate (Bundle savedInstanceState) {   
  28.         super .onCreate (savedInstanceState);  
  29.         setContentView (R.layout.activity_xl_2_sqlite);  
  30.   
  31.         dbHelper =  new  DBHelper (getApplicationContext ());  
  32.         dbQueries =  new  DBQueries (getApplicationContext ());  
  33.   
  34.         afirmar getSupportActionBar ()! =  null ;  
  35.         getSupportActionBar (). setDisplayHomeAsUpEnabled ( true );  
  36.   
  37.         edtFilePath = (EditText) findViewById (R.id.edt_file_path);  
  38.         btnImport = (Botón) findViewById (R.id.btn_import);  
  39.         edtFilePath.setText (directory_path);  
  40.         btnImport.setOnClickListener ( new  View.OnClickListener () {  
  41.             @Anular  
  42.             public void  onClick (  vista de vista final ) {   
  43.                 Archivo file =  new  File (directory_path);  
  44.                 if  (! file.exists ()) {  
  45.                     Utils.showSnackBar (ver,  "Sin archivo" );  
  46.                     regreso ;  
  47.                 }  
  48.                 dbQueries.open ();  
  49.                 // Se usa para importar datos de excel sin dejar caer la tabla  
  50.                 // ExcelToSQLite excelToSQLite = new ExcelToSQLite (getApplicationContext (), DBHelper.DB_NAME);  
  51.   
  52.                 // si desea agregar una columna en Excel e importarla a DB, debe abandonar la tabla  
  53.                 ExcelToSQLite excelToSQLite =  new  ExcelToSQLite (getApplicationContext (), DBHelper.DB_NAME,  falso );  
  54.                 // Importar archivo EXCEL a SQLite  
  55.                 excelToSQLite.importFromFile (directory_path,  new ExcelToSQLite.ImportListener () {  
  56.                     @Anular  
  57.                     public void  onStart () {   
  58.   
  59.                     }  
  60.   
  61.                     @Anular  
  62.                     public void  onCompleted (String dbName) {   
  63.                         Utils.showSnackBar (ver,  "Excel importado en"  + dbName);  
  64.                     }  
  65.   
  66.                     @Anular  
  67.                     public void  onError (Exception e) {   
  68.                         Utils.showSnackBar (ver,  "Error:"  + e.getMessage ());  
  69.                     }  
  70.                 });  
  71.                 dbQueries.close ();  
  72.             }  
  73.         });  
  74.   
  75.     }  
  76.   
  77.     @Anular  
  78.     public boolean  onOptionsItemSelected (elemento MenuItem) {   
  79.         if  (item.getItemId () == android.R.id.home)  
  80.             onBackPressed ();  
  81.         devolver verdadero ;   
  82.     }  
Nota
  • Si encuentra algún problema en esta biblioteca, se siente libre informe las cuestiones en GitHub tema
  • Puede encontrar el WIKI o la documentación para el uso y sus características aquí .
Descargar código
Puedes encontrar la biblioteca en GitHub . Si te gusta esta biblioteca, haz una estrella en la biblioteca en GitHub y comparte esta biblioteca. La implementación de muestra de esta biblioteca se puede encontrar aquí .