PHPExcel - O valor de uma célula que faz referência a outra célula não foi obtido corretamente
Estou tendo esse problema ao tentar extrair informações de arquivos do Excel. Aqui está minha situação: tenho 34 arquivos do Excel que recebi de vários usuário
Estou usando o PHP versão 5 para extrair dos arquivos do Excel. Meu script fará um loop para todos os arquivos, fazendo um loop novamente de acordo com o nome da planilha e, finalmente, fazendo um loop novamente de acordo com os endereços das célula
O problema surgiu quando os usuários entraram em uma célula por ex. = + A1, o que significa que os usuários que referenciam o valor da célula para outra célula, devido ao mesmo valor da célula A1.
Quando verifiquei o mysql (como salvei os para uso futuro), descobri que o registro de uma célula específica é idêntico a outro registro obtido da mesma célula, mas em um arquivo excel diferente. O que eu quis dizer é que, como meu script php passará de um arquivo para outro, a primeira vez que o PHPExcel lerá, por exemplo, a célula C3 que tem algum valor de US $ 3.000,00 nos próximos arquivos, o PHPExcel poderá ir para a mesma célula C3, mas desta vez a célula C3 contém uma fórmula que faz referência à célula A1 (fórmula "= + A1") que possui o valor USD5.000,00.
script @PHP supõe gravar no mysql por US $ 5.000,00, mas não o fez. Eu suspeito que o script PHPExcel não limpou a variável na primeira rodada. Tentei desconfigurar ($ objPHPExcel) e destruir a variável, mas ela ainda está acontecend
Minha codificação é simples da seguinte maneira:
if(file_exists($inputFileName))
{
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($inputFileName);
//to obtain date from FILE and store in DB for future comparison
$validating_date_reporting = $objPHPExcel->getSheet(0)->getCell('C10')->getValue();
$validating_date_reporting = PHPExcel_Style_NumberFormat::toFormattedString($validating_date_reporting,"YYYY-MMM-DD");
$validating_date_reporting = date('Y-m-d',strtotime($validating_date_reporting));
//first entry
$entry = mysql_query('INSERT INTO `'.$table.'`(`broker_code`, `date`, `date_from_submission`) VALUES("'.$broker_code.'","'.$reporting_date.'","'.$reporting_date.'")') or die(mysql_error());
foreach($cells_array as $caRef=>$sName)
{
foreach($sName as $sNameRef=>$cells)
{
$wksht_page = array_search($caRef, $sheetNameArray);
$cell_column = $wksht_page.'_'.$cells;
echo $inputFileName.' '.$caRef.' '.$cell_column.'<br>';
$value = $objPHPExcel->setActiveSheetIndexByName($caRef)->getCell($cells)->getCalculatedValue();
echo $value.'<br>';
if($value)
{
$isdPortal->LoginDB($db_periodic_submission);
$record = mysql_query('UPDATE `'.$table.'` SET `'.$cell_column.'` = "'.$value.'" WHERE broker_code = "'.$broker_code.'" AND date_from_submission = "'.$validating_date_reporting.'"') or die(mysql_error());
}
}
}
}
Eu realmente espero que você possa me ajudar aqui ..
Agradeço antecipadamente