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 |