Archivo del blog

Mostrando entradas con la etiqueta android studio. Mostrar todas las entradas
Mostrando entradas con la etiqueta android studio. Mostrar todas las entradas

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í .