Importando dados CSV com CodeIgniter

Alguns sistemas precisam importar dados gerados por outros, e o CSV é um dos formatos mais utilizados nessa importação de dados, pondendo ser utilizado até mesmo para migrar bancos de dados.

Esse tutorial vai mostrar como fazer a importação de dados e gravação deles no banco de dados a partir de um arquivo CSV enviado pelo usuário.

Passo 1 – Montando o ambiente

Aplicação

Faça o download e instalação do CodeIgniter. Aqui no portal existem tutoriais ensinando esse processo:

Banco de dados

Crie um banco de dados para esse tutorial e nele crie uma tabela chamada ‘contatos’, conforme instrução SQL abaixo:

Passo 2 – Configurações

Vamos configurar as libraries e helpers que serão carregadas automaticamente, as rotas e a conexão com o banco de dados.

Libraries, Helpers e Model

Abra o arquivo ‘application/config/autoload.php’ e atualize as informações conforme o código abaixo:

São carregadas as libraries ‘database’ e ‘session’ e o helper ‘url’.

Crie um arquivo chamado ‘csvimport.php’ dentro do diretório ‘application/libraries’ e coloque o código a seguir. Essa library será responsável por manipular o CSV importado.

Mais informações sobre essa library podem ser vistas aqui.

Rotas

As rotas serão os acionadores dos métodos no controller, abra o arquivo ‘application/config/routes.php’ e faça as configurações conforme código abaixo:

  • default_controller: chama o controller principal da aplicação, definido como ‘Base’
  • importar: chama o método ‘ImportCsv’ do controller ‘Base’
Conexão com Banco de Dados

Atualize as configurações de conexão com o banco de dados conforme as configurações do seu ambiente de desenvolvimento. Abra o arquivo ‘application/config/database.php’ e atualize as configurações.

Veja no código abaixo um exemplo:

Passo 3 – Criando a view

Esse tutorial vai utilizar somente uma view, sendo assim, crie um arquivo chamado ‘home.php’ em ‘application/views’. Nesse arquivo, coloque o código a seguir:

Essa view é composta por uma mensagem de erro, que será exibida somente se a variável ‘$error’ tiver sido informada, ou de sucesso, no caso de existir a sessão ‘success’.

Em seguida há um formulário que chama a rota ‘importar’, e é através desse formulário que o arquivo CSV será enviado pelo usuário.

Fechando a view, tem uma tabela que vai listar os dados gravados no banco após a importação.

Passo 4 – Criando o model

O model é o responsável por executar as rotinas no banco de dados, então crie um arquivo chamado ‘Csv_model.php’ dentro do diretório ‘application/models’, e coloque nele o conteúdo abaixo:

Passo 5 – Criando o controller

Crie um arquivo chamado ‘Base.php’ no diretório ‘application/controllers e coloque o conteúdo a seguir:

Pronto, o sistema de upload, análise e gravação dos dados do arquivo CSV está concluído.

Para gerar arquivos CSV para teste você pode utilizar o site http://www.generatedata.com/.

Bons Estudos!!!

button-codigo-fonteDemo Online