Foros del Web » Programando para Internet » PHP »

formato al crear un CSV

Estas en el tema de formato al crear un CSV en el foro de PHP en Foros del Web. Hola, logre crear un archivo cvs desde php con una consulta a mysql... pero el archivo queda sin el formato correspondiente... me explico, todos los ...
  #1 (permalink)  
Antiguo 14/03/2007, 08:42
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 17 años, 10 meses
Puntos: 6
Pregunta formato al crear un CSV

Hola,
logre crear un archivo cvs desde php con una consulta a mysql...
pero el archivo queda sin el formato correspondiente...
me explico, todos los valores quedan en una sola columna y en diferentes filas... la idea que cada dato ocupe una columna y una fila diferente como en excel... es la idea... ahi esta el codigo haber si me ayudan ;)

Código PHP:
//GENERAMOS RESPALDO DE DATOS ANTERIORES EN BASE DATOS
$result=mysql_query("select * from historial_alumnos ");
$elCSV 'RUT, NOMBRE, FECHA TITULO, AÑO TITULO'// creo las cabeceras para mi archivo CSV (como te das cuenta separadas por comas, y notar que este archivo CSV tendra 4 valores por linea 
$elCSV .= "\r\n"// esto si creo que sabes que hacen????? 
$csvName "/home/areas/of-col/public_www/colocaciones/CSV/csv_respaldo/csv_respaldo"date('Ymd') .".csv";// creo el nombre para mi archivo CSV, utilizo la funcion date para para que alnombre se le adjunte el anio el mes y el dia. 
$fileHandle fopen($csvName'w') or die('Can\'t create .csv file, try again later.'); // uso fopen para abrir archivo en el que voy a escribir.. si tienes duda sobre esta funcion mira le referencia que te deje arriba. 
while( $elTotal mysql_fetch_array($result) ){ // ejecuto un while con mi resultado de mi query a la base de datos. 
// echo($elTotal['company_code']);exit; // esto es un comentario 
$elCSV .= $elTotal['historial_rut'].",".$elTotal['historial_nombre'].",".$elTotal['historial_fecha_titulo'].",".$elTotal['historial_anio_titulo']."\r";// aqui es cuanto empiezo a guardar el contenido de los campos de mi base de datos en una variable de string de PHP 
}
// create and write file 
fwrite($fileHandle$elCSV); // funcion para escribir mi string al archivo previamente abierto con fopen. 
//echo($elTotal['id']."<br />"); 
fclose($fileHandle); // cierro el archivo previamente abierto 
//} 
// push file to browser 
// ESTAR CABECERAS (QUE SE MANEJAN CON LA FUNCION HEADER DE PHP,) SON PARA DECIRLE EL TIPO DE ARCHIVO QUE ESTAMOS GENERANDO (EN ESTE CASO PARA CREAR UN ARCHIVO DE CSV DE EXCEL) , PARA QUE NO CACHEE EL CONTENIDO, FECHA DE ULTIMA MODIFICACION, COMO SE MANEJARA EL CONTENIDO CREADO. SI INLINE (QUE LO VERA DIRECTAMENTE EN EL NAVEGADOR) O ATTACHMENT (QUE DESPLEGARA LA VENTANA DE DESCARGAR DEL NAVEGADOR), TAMANIO DEL ARCHIVO Y POR ULTIMO DAMOS UN ECHO PARA QUE EL CONTENIDO SEA AGREGADO. 
header('Content-Type: application/x-octet-stream'); // ARCHIVO DE EXCEL 
header('Last-Modified: '.date('D, d M Y H:i:s')); 
header('Content-Disposition: attachment; filename="Historial_Titulados_DII'date('Ymd') .'.csv"'); 
header("Content-Length: ".filesize($csvName)); 
// echo $csvContent; 
// delete file 
// unlink($csvName); 
echo($elCSV); 
gracias...
__________________
sEIK! -Chile-
Analista Programador.
  #2 (permalink)  
Antiguo 14/03/2007, 09:04
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 17 años, 10 meses
Puntos: 6
Exclamación Re: formato al crear un CSV

de verdad necesito ayuda :s

algun manifestado!
__________________
sEIK! -Chile-
Analista Programador.
  #3 (permalink)  
Antiguo 14/03/2007, 09:19
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 17 años, 10 meses
Puntos: 6
De acuerdo Re: formato al crear un CSV

Ya lo solucione, el problema que para que excel (el mio po lo menos) lea adecuadamente los datos, deben ir separados por ";" no por "," como los tenia...

Saludos,
__________________
sEIK! -Chile-
Analista Programador.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:43.