Pessoal, bom dia!
Estou fazendo a exportação de uma consulta para XLS. Essa não é uma exportação nativa do scriptcase devido a algumas necessidades que tive.
O meu problema está sendo que ao exportar para o XLS, tenho um campo valor que está importando de forma incorreta. Pelo que percebi, valores maiores de 1000 ou que contenham os centavos (por ex: 855,14) Estão exportando corretos. Porém numeros cheios (por ex: 800) vai no fim como 800 mesmo.
Abaixo, o código de como estou fazendo:
HTML montado:
$html = '';
$html .= '<table '.$style_table.'>';
$html .= ' <tr>';
$html .= ' <td><b><center>Admissão</center></b></td>';
$html .= ' <td><b><center>Nome</center></b></td>';
$html .= ' <td><b><center>Cargo</center></b></td>';
$html .= ' <td width="30%"><b><center>Salário</center></b></td>';
$html .= ' </tr>';
$html .= ' <tr>';
$html .= ' <td>01/12/2013</td>';
$html .= ' <td>JOAO DA SILVA</td>';
$html .= ' <td>SUPERVISOR(A) ATC</td>';
$html .= ' <td>1.165,00</td>';
$html .= ' </tr>';
$html .= ' <tr>';
$html .= ' <td>01/10/2010</td>';
$html .= ' <td>MARIA DO BAIRRO</td>';
$html .= ' <td>FERRAMENTEIRO</td>';
$html .= ' <td>852,00</td>';
$html .= ' </tr>';
$html .= ' <tr>';
$html .= ' <td>01/05/2015</td>';
$html .= ' <td>KARINA DE SOUZA</td>';
$html .= ' <td>AUX. ADMINISTRATIVO</td>';
$html .= ' <td>855,49</td>';
$html .= ' </tr>';
$html .= '</table>';
return $html;
Função para geração do XLS:
function geraXls($arquivo, $html){
// Configurações header para forçar o download
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"$arquivo\"" );
header ("Content-Description: PHP Generated Data" );
// Envia o conteúdo do arquivo
}
No exemplo:
- 1.165,00 vai exportar para o excel certo;
- 852,00 não exporta correto, ou seja, exporta 852;
- 855,49, exporta correto também.
Alguém teria alguma ideia do que possa ser?
Para formatar já fiz essas duas formas mas não deram certo:
$salario = sprintf('%.2f', '852,00'); // ESTE TRANSFORMA O CAMPO EM STRING E NA HORA DE FAZER ALGUMA FORMULA NO EXCEL NÃO FUNCIONA
$salario = number_format('852,00', 2, ',', '.'); // ESTE FAZ O QUE FALEI NO EXEMPLO ACIMA.
Desde já, agradeço a ajuda de todos.