Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas Fernandess

problema do numero 0 no cnpj e cpf no arquivo csv gerado php

Recommended Posts

code segue abaixo. Só é do CNPJ ele tira o primeiro número 0.

 

 

 
 
<?php
 
$conexao = mysql_connect("localhost", "root", "");
$conecta = mysql_select_db("bd",$conexao);
 
/*****************************
TIRAR MASCARAS
*****************************/
function tiraMask($mask){
$mask = preg_replace("/\D+/", "", $mask);
return $mask;
}
 
 
 
$query     = "SELECT * FROM exporta WHERE Exportado IS NULL";
 
$sql       = mysql_query($query) or die(mysql_error());
//$file = "CPF do Vendedor;Data;Hora;CNPJ do Cliente;Nome do Cliente;CEP;Rua;Numero;Complemento;Bairro;Cidade;Estado;Contato;Observação;Telefone;Visita Agendada";
$file = "";
while($row = mysql_fetch_assoc($sql)){
 
$file .="\n".tiraMask($row['CPF_Vendedor']).';'.$row['Data'].';'.$row['Hora'].';'.tiraMask($row['CNPJ_Cliente']).';'.$row['Nome_Cliente'].';'.tiraMask($row['CEP']).';'.$row['Rua'].';'.$row['Numero'].';'.$row['Complemento'].';'.$row['Bairro'].';'.$row['Cidade'].';'.$row['Estado'].';'.$row['Contato'].';'.$row['OBS'].';'.tiraMask($row['Telefone']).';'.$row['Visita_Agendada']; 
 
} 
header('Content-Disposition: attachment; filename="arquivo.csv"');
header('Expires: 0');
header('Pragma: no-cache');
echo trim($file);
 
 
?>
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se a função [inline]tiraMask[/inline] não está convertendo o valor para um numeral. Não existem números com zeros à esquerda, por isso estão sendo removidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está excluindo ou excel não está mostrando? Abra o arquivo direto no bloco de notas e veja, pois isto já ocorreu comigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta ER que você está usando remove tudo da string menos os números, ela não pode estar causando este erro, em vez de gerar o csv dê um echo na saída para o próprio navegador. Como eu dissse, abra o arquivo direto no bloco de notas, sem passar pelo excel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nome,cpf
"fulano","066.345.225-22"

ou

nome,cpf
"fulano","06634522522"

Não daria erro não, funciona!

 

A última alternativa, se precisar mesmo trabalhar com Excel, é tentar gerar um XLS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evandro Oliveira tentei da sua maneira mais não deu certo. Fiz da seguinte maneira

 

 

 
<?php
 
/*****************************
TIRAR MASCARAS
*****************************/
function tiraMask($mask){
$mask = preg_replace("/\D+/", "", $mask);
return $mask;
}
 
$cpf = '007.765.123-10';
$cpf = tiraMask($cpf);
 
$file .="\n"."$cpf"; 
 
header('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
header('Content-Disposition: attachment; filename="exporta.csv"');
header('Expires: 0');
header('Pragma: no-cache');
echo trim($file);
 
?>


Ele voltou 776512310 isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

/*****************************

TIRAR MASCARAS

*****************************/

function tiraMask($mask){

return preg_replace("/\D/", "", $mask);

}

 

$cpf = tiraMask('007.765.123-10');

 

$file .= "\n"."\"$cpf\"";

 

header('Content-Type: text/csv;charset=utf-8');

header('Content-Disposition: attachment; filename="exporta.csv"');

header('Expires: 0');

header('Pragma: no-cache');

echo trim($file);

Compartilhar este post


Link para o post
Compartilhar em outros sites

No bloco de notas abre bonitinho?? Não tenho Excel aqui. Uso LibreOffice Calc. Na hora de abrir um CSV ele oferece opções que estão disponíveis no Excel quando você tenta importar um arquivo, e não abrir diretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://codepad.viper-7.com/YZi0oJ

 

Novamente, insisto para que exiba num editor de textos. Aqui funcionou corretamente.

 

Como disse, quando abro no Calc, o "Excel" do LibreOffice, aparece uma tela na frente perguntando o tipo do campo (número, texto, etc) com os zeros

 

2013-03-17-002150_844x675_scrot.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixei assim e deu certo também olhando no notepad++

 

 

$file .="\n".tiraMask($row['CPF_Vendedor']).';'.$row['Data'].';'.$row['Hora'].';'.$row['CNPJ_Cliente'].';'.$row['Nome_Cliente'].';'.tiraMask($row['CEP']).';'.$row['Rua'].';'.$row['Numero'].';'.$row['Complemento'].';'.$row['Bairro'].';'.$row['Cidade'].';'.$row['Estado'].';'.$row['Contato'].';'.utf8_encode($row['OBS']).';'.tiraMask($row['Telefone']).';'.sim; 

 

Mais valeu ai pela ajuda Evandro Oliveira ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.