Exportando dados MySQL para Excel em PHP com células separadas
Você está encontrando um problema ao exportar dados MySQL para Excel, onde todo o texto está sendo exibido em uma única célula em vez de células separadas para cada valor de linha. Este artigo tem como objetivo fornecer uma solução para esse problema abordando cada linha do seu código e recomendando as alterações apropriadas.
Linha 12: $count = mysql_num_fields($result);
Esta linha conta o número de colunas no conjunto de resultados e o atribui à variável $count.
Linha 14: $header .= mysql_field_name($result, $i). "\t";
Esta linha anexa os nomes das colunas à variável $header, separados por tabulações.
Linha 24: if(!isset($value) || $valor == ""){ $valor = "\t"; }
Nesta linha, se o valor da célula estiver vazio ou indefinido, ele será substituído por uma tabulação. Isso garante que cada célula tenha pelo menos um espaço.
Linha 28: $data .= trim($line)."\n";
Aqui, o a linha aparada de dados é anexada à variável $data, separada por novas linhas.
Linha 38: header("Content-Disposition: attachment; filename=exportfile.xls");
Nesta linha, o cabeçalho é definido para forçar o navegador a baixar o arquivo como um documento Excel chamado exportfile.xls.
Linha 52: $result = @mysql_query( $sql,$Connect) ou die("Não foi possível executar a consulta:
" . mysql_error(). "
" . mysql_errno());
Esta linha executa a consulta SQL e lida com quaisquer erros potenciais.
Linha 63: header("Pragma: no-cache"); and header("Expires: 0");
Esses cabeçalhos desativam o cache para garantir que os dados mais recentes sejam baixados em cada solicitação.
Linha 92: print trim( $schema_insert);
Nesta linha, os dados cortados são impressos.
Código aprimorado:
Aqui está uma versão aprimorada do seu código isso deve resolver o problema de exportação de dados para células separadas no Excel:
$DB_Server = "localhost";
$DB_Username = "username";
$DB_Password = "password";
$DB_DBName = "databasename";
$DB_TBLName = "tablename";
$filename = "excelfilename";
$sql = "Select * from $DB_TBLName";
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());
$result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");
$count = mysql_num_fields($result);
for ($i = 0; $i
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3