A planilha mais comumente usada é a MS Excel. Este programa está disponível como parte da suíte desktop da microsoft. Por outro lado, quando estamos falando de andróide, estamos falando de desenvolvimento móvel.

E se você tiver dados em seu aplicativo móvel que deseja analisar no MS Excel? Nesse caso, você precisa exportar os dados do banco de dados SQLite para o Excel. Em vez de inventar novas maneiras de fazer isso, este tutorial mostra como fazer com as soluções já existentes em minutos.

(a). Solução 1: Usar SQLiteToExcel

Esta é uma biblioteca leve para converter o banco de dados SQLite para Excel e Convert Excel para SQLite.

Como você a utiliza?

Passo 1: Instale o banco de dados

Sendo uma solução de terceiros, você precisa instalá-la via gradle. Adicione a seguinte declaração de implementação em seu build.gradle e sincronize:

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

Passo 2: Adicionar as permissões necessárias

Neste caso, você precisa da permissão para ler a partir do armazenamento externo do dispositivo. Assim, adicione a seguinte permissão em seu AndroidManifest.xml:

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

Etapa 3: Dados de exportação

Por exemplo, para exportar o banco de dados sqlite para o local padrão, comece instanciando a classe `SqliteToExcel', passando no contexto, bem como o nome do banco de dados como parâmetros através do construtor:

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

Se você deseja exportar e economizar para um destino personalizado, então use a linha abaixo:

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

E se você preferir exportar apenas uma única tabela e exportá-la para uma única planilha Excel? Nesse caso, você pode utilizar a função exportSingleTable(), passando no nome da tabela do banco de dados, o nome da planilha Excel e uma callback com três métodos:

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

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

E se você quiser exportar uma lista de tabelas do banco de dados para o Excel, utilize a função 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) {

     }
});

Para exportar todas as tabelas do banco de dados para a folha de Excel, você utiliza a função "ExportAllTables()exportAllTables() da seguinte forma:

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

     }
     @Override
     public void onCompleted(String filePath) {

     }
     @Override
     public void onError(Exception e) {

     }
});

Se você quiser excluir colunas específicas, defina-as em um arrailista e configure-as através da função setExcludeColumns(), então você passa esse arrailista para esse método:

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

Como importar do Excel para o SQLite

Esta biblioteca também permite a importação do Excel para o banco de dados sqlite. Nesse caso você utilizará a classe ExcelToSQLite em vez da classe SqliteToExcel que foi utilizada durante a exportação.

Então comece por instantâneo o ExcelToSQLite e passe no contexto, assim como o nome do banco de dados:

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

Para largar uma tabela durante a importação do Excel, use o seguinte código:

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

Se você quiser exportar planilha Excel da pasta de ativos em andróide para o banco de dados sqlite, utilize a função importFromAsset(), passando no nome do arquivo `.xls' excel e um ouvinte de importação chamada de retorno:

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

    }

    @Override
    public void onCompleted(String dbName) {

    }

    @Override
    public void onError(Exception e) {

    }
});

Se você quiser importar o Excel de um diretório para o banco de dados, utilize a função importFromFile() e passe o caminho do diretório:

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

    }

    @Override
    public void onCompleted(String dbName) {

    }

    @Override
    public void onError(Exception e) {

    }
});

Exemplo completo

Download o exemplo completo.

Referência

Abaixo estão os links de referência de código:

Número Link Link
1. Código de download
2. Leia mais
3. Siga o autor do código

Categorized in: