
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
Creando un nuevo proyecto con Android Studio
Paso 2
Configuración de la biblioteca y AndroidManifest para el proyecto
Configuración de la biblioteca y AndroidManifest para el proyecto
Paso 3
Creando base de datos SQLite
Creando base de datos SQLite
Paso 4
Exportar la base de datos SQLite a Excel.
Exportar la base de datos SQLite a Excel.
Paso 5
Importación de Excel en SQLite.
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
Paso 1: crear un nuevo proyecto con Android Studio
- Abra Android Studio y seleccione Crear nuevo proyecto.
- Nombre el proyecto como su deseo y seleccione su plantilla de actividad.
- 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
- 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'
- Luego haga clic en " Sincronizar ahora " para agregar la biblioteca.
- 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
- Somos conscientes del uso de SQLite en Android. Si desea saber cómo implementar operaciones de SQLite, haga clic aquí .
- 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
- 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");
- 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.
- 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.
- sqliteToExcel.exportSingleTable ( "table1" , "table1.xls" , new SQLiteToExcel.ExportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String filePath) {
- }
- @Anular
- public void onError (Exception e) {
- }
- });
LISTA DE MESAS
Las siguientes líneas se utilizan para exportar una lista de tablas.
- sqliteToExcel.exportSingleTable (table1List, "table1.xls" , new SQLiteToExcel.ExportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String filePath) {
- }
- @Anular
- public void onError (Exception e) {
- }
- });
BASE DE DATOS ENTERA
Las siguientes líneas se utilizan para exportar una lista de tablas.
- sqliteToExcel. exportAllTables ( "table1.xls" , new SQLiteToExcel.ExportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String filePath) {
- }
- @Anular
- public void onError (Exception e) {
- }
- });
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.
- 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");
- 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.
- 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.
- excelToSQLite.importFromAsset ( "assetFileName.xls" , nuevo ExcelToSQLite.ImportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String dbName) {
- }
- @Anular
- public void onError (Exception e) {
- }
- });
IMPORTAR DEL DIRECTORIO
Utilice las siguientes líneas para importar archivos de Excel desde la ruta definida o definida por el usuario.
- excelToSQLite.importFromFile (directory_path, new ExcelToSQLite.ImportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String dbName) {
- }
- @Anular
- public void onError (Exception e) {
- }
- });
Código completo de la aplicación
Código completo de SQLite2ExcelActivity.java
- paquete com.ajts.androidmads.sqlite2xlDemo;
- importar android.os.Bundle;
- importar android.os.Environment;
- import android.support.v7.app.AppCompatActivity;
- importar android.view.MenuItem;
- importar android.view.View;
- importar android.widget.Button;
- importar android.widget.EditText;
- importar android.widget.ListView;
- import com.ajts.androidmads.library.SQLiteToExcel;
- import com.ajts.androidmads.sqlite2xlDemo.adapter.CustomAdapter;
- import com.ajts.androidmads.sqlite2xlDemo.db.DBHelper;
- import com.ajts.androidmads.sqlite2xlDemo.db.DBQueries;
- import com.ajts.androidmads.sqlite2xlDemo.model.Users;
- import com.ajts.androidmads.sqlite2xlDemo.util.Utils;
- importar java.io.File;
- import java.util.ArrayList;
- import java.util.List;
- la clase pública SQLite2ExcelActivity extiende AppCompatActivity {
- EditText edtUser, edtContactNo;
- Botón btnSaveUser, btnExport;
- ListView lvUsers;
- CustomAdapter lvUserAdapter;
- Lista <Users> usersList = new ArrayList <> ();
- DBHelper dbHelper;
- DBQueries dbQueries;
- @Anular
- void protegido onCreate (Bundle savedInstanceState) {
- super .onCreate (savedInstanceState);
- setContentView (R.layout.activity_sqlite_2_xl);
- afirmar getSupportActionBar ()! = null ;
- getSupportActionBar (). setDisplayHomeAsUpEnabled ( true );
- dbHelper = new DBHelper (getApplicationContext ());
- dbQueries = new DBQueries (getApplicationContext ());
- edtUser = (EditText) findViewById (R.id.edt_user);
- edtContactNo = (EditText) findViewById (R.id.edt_c_no);
- btnSaveUser = (Button) findViewById (R.id.btn_save_user);
- btnExport = (Button) findViewById (R.id.btn_export);
- lvUsers = (ListView) findViewById (R.id.lv_users);
- dbQueries.open ();
- usersList = dbQueries.readUsers ();
- lvUserAdapter = new CustomAdapter (getApplicationContext (), usersList);
- lvUsers.setAdapter (lvUserAdapter);
- dbQueries.close ();
- btnSaveUser.setOnClickListener ( new View.OnClickListener () {
- @Anular
- public void onClick (Ver vista) {
- if (validate (edtUser) && validate (edtContactNo)) {
- dbQueries.open ();
- Users users = new Users (edtUser.getText (). ToString (), edtContactNo.getText (). ToString ());
- dbQueries.insertUser (usuarios);
- usersList = dbQueries.readUsers ();
- lvUserAdapter = new CustomAdapter (getApplicationContext (), usersList);
- lvUsers.setAdapter (lvUserAdapter);
- dbQueries.close ();
- Utils.showSnackBar (ver, "Insertado correctamente " );
- }
- }
- });
- btnExport.setOnClickListener ( new View.OnClickListener () {
- @Anular
- public void onClick ( vista de vista final ) {
- String directory_path = Environment.getExternalStorageDirectory (). GetPath () + "/ Backup /" ;
- Archivo file = new File (directory_path);
- if (! file.exists ()) {
- file.mkdirs ();
- }
- // Exportar SQLite DB como EXCEL FILE
- SQLiteToExcel sqliteToExcel = new SQLiteToExcel (getApplicationContext (), DBHelper.DB_NAME, directory_path);
- sqliteToExcel.exportAllTables ( "users.xls" , new SQLiteToExcel.ExportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String filePath) {
- Utils.showSnackBar (ver, "exportado con éxito" );
- }
- @Anular
- public void onError (Exception e) {
- }
- });
- }
- });
- }
- boolean validate (EditText editText) {
- if (editText.getText (). toString (). length () == 0) {
- editText.setError ( "Campo requerido" );
- editText.requestFocus ();
- }
- return editText.getText (). toString (). length ()> 0;
- }
- @Anular
- public boolean onOptionsItemSelected (elemento MenuItem) {
- if (item.getItemId () == android.R.id.home)
- onBackPressed ();
- devolver verdadero ;
- }
- }
Código completo de Excel2SQLiteActivity.java
- paquete com.ajts.androidmads.sqlite2xlDemo;
- importar android.os.Bundle;
- importar android.os.Environment;
- import android.support.v7.app.AppCompatActivity;
- importar android.view.MenuItem;
- importar android.view.View;
- importar android.widget.Button;
- importar android.widget.EditText;
- import com.ajts.androidmads.library.ExcelToSQLite;
- import com.ajts.androidmads.sqlite2xlDemo.db.DBHelper;
- import com.ajts.androidmads.sqlite2xlDemo.db.DBQueries;
- import com.ajts.androidmads.sqlite2xlDemo.util.Utils;
- importar java.io.File;
- la clase pública Excel2SQLiteActivity extiende AppCompatActivity {
- EditText edtFilePath;
- Botón btnImport;
- DBHelper dbHelper;
- DBQueries dbQueries;
- String directory_path = Environment.getExternalStorageDirectory (). GetPath () + "/Backup/users.xls" ;
- @Anular
- void protegido onCreate (Bundle savedInstanceState) {
- super .onCreate (savedInstanceState);
- setContentView (R.layout.activity_xl_2_sqlite);
- dbHelper = new DBHelper (getApplicationContext ());
- dbQueries = new DBQueries (getApplicationContext ());
- afirmar getSupportActionBar ()! = null ;
- getSupportActionBar (). setDisplayHomeAsUpEnabled ( true );
- edtFilePath = (EditText) findViewById (R.id.edt_file_path);
- btnImport = (Botón) findViewById (R.id.btn_import);
- edtFilePath.setText (directory_path);
- btnImport.setOnClickListener ( new View.OnClickListener () {
- @Anular
- public void onClick ( vista de vista final ) {
- Archivo file = new File (directory_path);
- if (! file.exists ()) {
- Utils.showSnackBar (ver, "Sin archivo" );
- regreso ;
- }
- dbQueries.open ();
- // Se usa para importar datos de excel sin dejar caer la tabla
- // ExcelToSQLite excelToSQLite = new ExcelToSQLite (getApplicationContext (), DBHelper.DB_NAME);
- // si desea agregar una columna en Excel e importarla a DB, debe abandonar la tabla
- ExcelToSQLite excelToSQLite = new ExcelToSQLite (getApplicationContext (), DBHelper.DB_NAME, falso );
- // Importar archivo EXCEL a SQLite
- excelToSQLite.importFromFile (directory_path, new ExcelToSQLite.ImportListener () {
- @Anular
- public void onStart () {
- }
- @Anular
- public void onCompleted (String dbName) {
- Utils.showSnackBar (ver, "Excel importado en" + dbName);
- }
- @Anular
- public void onError (Exception e) {
- Utils.showSnackBar (ver, "Error:" + e.getMessage ());
- }
- });
- dbQueries.close ();
- }
- });
- }
- @Anular
- public boolean onOptionsItemSelected (elemento MenuItem) {
- if (item.getItemId () == android.R.id.home)
- onBackPressed ();
- devolver verdadero ;
- }
- }
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
No hay comentarios:
Publicar un comentario