Como importar CSV Pessoal, preciso criar um software para importar alguns dados por meio de um arquivo CSV no banco de dados de forma que o usuário faça isso, existe algo pronto que faça isso ou devo criar? se alguém tiver algo pronto e puder compartilhar algo ficarei muito grato desde já. André Luiz...
AW
Como importar CSV  
Fechado
Pessoal,

preciso criar um software para importar alguns dados por meio de um arquivo CSV no banco de dados de forma que o usuário faça isso, existe algo pronto que faça isso ou devo criar? se alguém tiver algo pronto e puder compartilhar algo ficarei muito grato desde já.

André Luiz

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


ES

Olá! Eu uso assim:

Crie a classe TReadyCsv com o código abaixo e salve na pasta util;
 
  1. <?php class TReadCsv {
  2. private $_file;
  3. function __construct($file) {
  4. $this->_file = $file;
  5. }
  6. public function set_file($file) {
  7. $this->_file = $file;
  8. }
  9. public function abre() {
  10. $fp = fopen ($this->_file,"r");
  11. while ($data = fgetcsv ($fp, 1000, ";")) {
  12. $conteudo[] = $data;
  13. }
  14. return $conteudo;
  15. }
  16. } ?>


Depois é só implementar seu uso conforme suas necessidades e regras de negócio. Segue um exemplo de uso:

 
  1. <?php function onImportCSV()
  2. {
  3. $data = $this->form->getData();
  4. if($data->arq_plan == 'Nenhum arquivo selecionado' or $data->arq_plan == '')
  5. {
  6. new TMessage('error', 'Favor selecionar arquivo antes de importar.');
  7. } else {
  8. $csv = new TReadCsv('tmp/'.$data->arq_plan);
  9. $conteudo = $csv->abre();
  10. //seta conexão
  11. $dbconn = TConnection::open('changeman');
  12. //Inicializa a instrução de update
  13. $cont = 0;
  14. foreach ($conteudo as $dados)
  15. {
  16. $cont++;
  17. //if ($cont < 2) {
  18. if($dados[0] != 'PRODUTO')
  19. {
  20. $peso = 0;
  21. if ($dados[10] != '') {
  22. $peso = str_replace(',', '.', $dados[10]);
  23. }
  24. $mssql = "update ficha_tecnica set
  25. descricao_longa = '{$dados[3]}',
  26. tamanho_base = '{$dados[9]}',
  27. peso = ".$peso." ";
  28. $mssql .= "where produto = '{$dados[0]}'";
  29. $result = $dbconn->exec($mssql);
  30. }
  31. //}//fim if
  32. }
  33. new TMessage('info', 'Arquivo importado com sucesso!');
  34. }
  35. } ?>


Espero ter ajudado. abs!
AW

Ajudou sim, muito obrigado amigo!
EB

Excelente. Parabéns!!