Ir ao conteúdo

Posts recomendados

Postado

Oi pessoal! Gostaria da ajuda de vocês, estou desenvolvendo um projeto para faculdade e tenho que importar as informações de umas colunas específicas e inserir essas informações no banco de dados via php.  Consegui fazer com que ele faça a busca das colunas específicas e insira no banco, porém os dados estão vindo completamente diferente do que está na planilha real. Percebi que ele está fazendo uma conversão desses valores antes de inserir no banco, e ai que está o problema já tentei de várias formas, mudando o DATE do banco para VARCHAR e vice-versa, converti para texto, DATETIME e mesmo assim o erro continua. Se alguém tiver como ajudar, ficarei grata! 

<?php
//Esse arquivo ler o excel enviado pelo index e insere no banco
//import.php

include "database.php";
include "./class.upload.php";

if (isset($_FILES["name"])) {
  $up = new Upload($_FILES["name"]);
  if ($up->uploaded) {
    $up->Process("./uploads/");
    if ($up->processed) {
      /// leer el archivo excel
      require_once './PHPExcel/Classes/PHPExcel.php';
      $arquivo       = "uploads/" . $up->file_dst_name;
      $inputFileType = PHPExcel_IOFactory::identify($arquivo);
      $objReader     = PHPExcel_IOFactory::createReader($inputFileType);
      $objPHPExcel   = $objReader->load($arquivo);
      $sheet         = $objPHPExcel->getSheet(0);
      $highestRow    = $sheet->getHighestRow();
      $highestColumn = $sheet->getHighestColumn();
      for ($row = 2; $row <= $highestRow; $row++) {
        $x_data            = $sheet->getCell("N" . $row)->getValue();
        $x_hora_ponto   = $sheet->getCell("Q" . $row)->getValue();
        $x_hora_trabalhada = $sheet->getCell("R" . $row)->getValue();
        $sql               = "INSERT INTO funcionarios (DATA, HORA_PONTO, HORA_TRABALHADA) VALUES ";
        $sql               .= " ('" . $x_data . "','" . $x_hora_ponto . "','" . $x_hora_trabalhada . "')";
        $con->query($sql);
      }
      unlink($arquivo);
    }
  }
}
echo "<script>
window.location = './index.php';
</script>
";
<!--Esse aqui é o form do index que envia o arquivo para o import-->

<form method="post" id="addproduct" action="import.php" enctype="multipart/form-data" role="form">
  <div>
    <label class="col-lg-2 control-label">Arquivo*</label>
    <input type="file" name="name"  id="name" placeholder="Arquivo (.xlsx)">
    <br><br>
    <button type="submit" class="btn btn-primary">Importar Dados</button>
  </div>
</form>

 

 

  • 8 meses depois...
Postado

Eu tenho uma planilha cuja coluna DATA vem no formado dd/MM/aaaa e para conseguir usar as classes PHP, apontei na coluna B o formato de data que queria, e então consegui recuperar corretamente a data conforme estava na planilha.


                 

 $objPHPExcel = PHPExcel_IOFactory::load($destino);
                   $sheet         = $objPHPExcel->getSheet(0);

                   $highestRow    = $sheet->getHighestRow();
                   $highestColumn = $sheet->getHighestColumn();

                   $sheet->getStyle('B1:B'.$highestRow)
                          ->getNumberFormat()
                          ->setFormatCode('dd/mm/yyyy');




                   for ($row = 2; $row <= $highestRow; $row++) {

                     $x_hotel     = $sheet->getCell("A" . $row)->getValue();
                     $x_data      = $sheet->getCell("B" . $row)->getFormattedValue();
                     $x_ocupacao  = $sheet->getCell("C" . $row)->getValue();

                     echo 'Hotel: '.$x_hotel.' Data: '.$x_data.' Ocupacao: '.$x_ocupacao.'<br>';
                    }

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...