Exportación de datos MySQL a Excel en PHP con celdas separadas
Tienes un problema al exportar datos MySQL a Excel, donde todo el texto se muestra en una sola celda en lugar de celdas separadas para cada valor de fila. Este artículo tiene como objetivo proporcionar una solución a este problema abordando cada línea de su código y recomendando los cambios apropiados.
Línea 12: $count = mysql_num_fields($resultado);
Esta línea cuenta el número de columnas en el conjunto de resultados y lo asigna a la variable $count.
Línea 14: $header .= mysql_field_name($resultado, $i)."\t";
Esta línea agrega los nombres de las columnas a la variable $header, separados por tabulaciones.
Línea 24: if(!isset($valor) || $valor == ""){ $valor = "\t"; }
En esta línea, si el valor de la celda está vacío o no está definido, se reemplaza con una pestaña. Esto asegura que cada celda tenga al menos un espacio.
Línea 28: $data .= trim($line)."\n";
Aquí, el La línea de datos recortada se agrega a la variable $data, separada por nuevas líneas.
Línea 38: header("Content-Disposition: adjunto; filename=exportfile.xls");
En esta línea, el encabezado está configurado para forzar al navegador a descargar el archivo como un documento de Excel llamado exportfile.xls.
Línea 52 : $resultado = @mysql_query($sql,$Connect) o die("No se pudo ejecutar la consulta:
" . mysql_error(). "
" . mysql_errno());
Esta línea ejecuta la consulta SQL y maneja cualquier error potencial.
Línea 63: header("Pragma: sin caché"); and header("Expires: 0");
Estos encabezados desactivan el almacenamiento en caché para garantizar que se descarguen los datos más recientes en cada solicitud.
Línea 92: print trim( $schema_insert);
En esta línea, se imprimen los datos recortados.
Mejorado Código:
Aquí hay una versión mejorada de su código que debería resolver el problema de exportar datos a celdas separadas en 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
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3