Seguindo as orientações do Tutorial disponibilizado (pela equipe Scriptcase/Netmake) na internet para elaborar aplicação p/ cliente final que possibilite importação de dados de planilhas Excel utilizando biblioteca PHPExcel, é possível importar dados de planilha com formato Excel 2003 normalmente, entretanto, as colunas tipo data causam problemas na importação e daí tenho mudado o formato e o conteúdo dessas colunas para texto ANOMESDIA, como 20190131 por exemplo, e a importação vai de boa… Mas isso exige essa interferência “manual”, dá trabalho e, por isso, gostaria da ajuda dos senhores para modificação do código abaixo afim de alterar/formatar o conteúdo das colunas tipo Date e a importação/insert na tabela do banco de dados seja possível.
código:
$objReader = new PHPExcel_reader_Excel5();
$objReader->setReadDataOnly(true);
/*ambiente de desenvolvimento*/
/*
$objPHPExcel = $objReader->load("../../../tmp/".$this->xls_input_ul_name);
$worksheetData = $objReader->listWorkSheetInfo("../../../tmp/".$this->xls_input_ul_name);
*/
/*ambiente de produção*/
$objPHPExcel = $objReader->load("../_lib/tmp/".$this->xls_input_ul_name);
$worksheetData = $objReader->listWorkSheetInfo("../_lib/tmp/".$this->xls_input_ul_name);
$totalRows = $worksheetData[0]['totalRows'];
$totalColumns = $worksheetData[0]['totalColumns'];
$lastColumn = $objPHPExcel->getActiveSheet()->getHighestColumn();
$sheet = $objPHPExcel->getSheet(0);
$columnNames = "";
$rowData = "";
for ($column=0;$column<$totalColumns;$column++){
if($column == $totalColumns-1){
$columnNames.= utf8_decode($objPHPExcel->getActiveSheet()->getCellByColumnAndRow($column,1)->getValue());
}else{
$columnNames.= utf8_decode($objPHPExcel->getActiveSheet()->getCellByColumnAndRow($column,1)->getValue()).",";
}
}
for($row=2;$row<=$totalRows;$row++){
for($column=0;$column<$totalColumns;$column++){
if($column==$totalColumns-1){
$rowData.="'".utf8_decode($objPHPExcel->getActiveSheet()->getCellByColumnAndRow($column,$row)->getValue())."'";
}else{
$rowData.="'".utf8_decode($objPHPExcel->getActiveSheet()->getCellByColumnAndRow($column,$row)->getValue())."',";
}
}
$_insert="INSERT INTO TABELADOMYSQL (".$columnNames.") SELECT ".$rowData." FROM DUAL";
sc_exec_sql($_insert);
sc_commit_trans();
$rowData = "";
}
Muito Obrigado.