Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal.
Nos registros exportados que estou gerando, uma das colunas gostaria que recebesse o valor separado por quebra de linha.
Eu tentei usar \n, \r, \r\n mas ele acaba quebrando a linha fora da célula....queria ver se realmente é possível... como da forma em anexo.
/applications/core/interface/imageproxy/imageproxy.php?img=http://i61.tinypic.com/166nl21.png&key=ccb6db3bb825fbcf23ee0d0a95778d0b5da350b88f32d5b50ddbb83484eedb97" alt="166nl21.png" />
$linhas = array();
$campos = array("Nome", "E-mail", "Telefone(s)");
foreach ($campos as $campo)
{
array_push($linhas, $campo);
}
$export = "";
$export .= join(';', $linhas)."\r\n";
foreach ($lista as $cadastro)
{
$fones = explode('#', $cadastro['fones']);
$export .= $cadastro['nome'].';'.
$cadastro['email'].';'.
implode("\n", $fones).
"\r\n";
}
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: text/comma-separated-values");
header("Content-Disposition: attachment; filename=cadastros.csv");
echo $export;
exit();Por que você não usa: http://php.net/manual/fr/function.fputcsv.php
Você que quebrar que campo em linhas? tem algum exemplo?
Quero quebrar linhas dentro de uma célula, como na imagem do primeiro post.
Seria o campo telefone. No banco gravo ele separado por #.
Em geral o Excel vai interpretar como quebra de linha, dentro de uma mesma célula, dados entre aspas duplas. Ou seja, para colocar os telefones dentro da mesma linha você precisaria ter um .CSV assim:
nome; email; telefones;
fulano; fulano@teste.com;"0000-0000
1111-1111
2222-2222";
cicrano;cicrano@teste.com;"4444-4444
3333-3333
5555-5555";
Cuidado com os espaços entre os ponto e vírgulas.
Acho que para funcionar no seu código bastaria fazer algo como:
foreach ($lista as $cadastro)
{
$fones = explode('#', $cadastro['fones']);
$export .= $cadastro['nome'].';'.
$cadastro['email'].';\"'.
implode("\n", $fones).
"\r\n\"";
}
Veja se ajuda.
;)
Valeu, ajudou mesmo, só teve uma modificação, ficando assim:
foreach ($lista as $cadastro)
{
$fones = explode('#', $cadastro['fones']);
$export .= $cadastro['nome'].';'.
$cadastro['email'].';"'.
implode("\r\n", $fones).
"\r\n\"";
}Que ótimo que ajudou Eron!
Poderia ser assim também:
foreach ($lista as $cadastro)
{
$fones = explode('#', $cadastro['fones']);
$export .= $cadastro['nome'].";".
$cadastro['email'].";\"".
implode("\r\n", $fones).
"\r\n\"";
}
Aspas simples e duplas sempre são traiçoeiras :D
e como ta seu script?