PHP - Exportar tabla multidimensional csv

   
Vista:

Exportar tabla multidimensional csv

Publicado por albertogarci86 (2 intervenciones) el 16/12/2015 12:50:41
Buenos días,

He construido una tabla en HTML + PHP que muestro a continuación:

1
2
3
4
5
6
7
8
9
-               COL1       COL2       COL3       COL4
 
FILA1          -              B              -               C
 
FILA2          -              -               -               D
 
FILA3          -              E              F               -
 
FILA4          A              -               -              -

La tabla está almacenada en un array multidimiensional array[$FILA][$COL] y le pinto a través del siguiente código correctamente:

1
2
3
4
5
6
for ($i=0;$i<$fin_i;$i++){
        print("<tr>");
         for($j=0;$j<$fin_j;$j++) {
                        @print("<td>".$array[$i][$j]."</td>");
         }
}

El problema surge a la hora de exportar la tabla a un fichero .csv
Con el siguiente código genero el fichero pero no respeta las casillas con un "-" en su interior.
Este es el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
$fileLocation = "FILE.csv";
$file = fopen($fileLocation,"w");
 
function array_to_csv ( $arr ) {
        foreach ( $arr as &$row ) {
                $row = implode( ';', $row );
        }
        return implode( "\n" , $arr );
}
 
$csv_array=array_to_csv($array);
fwrite($file,$csv_array);
fclose($file);

Me gustaría generar un fichero csv que contenga íntegramente el contenido de la tabla de la siguiente manera para poder importarlo en excel

"-";"COL1";"COL2";"COL3";"COL4"
"FILA1";"";"B";"";"C"
"FILA2";"";"";"";"D"
"FILA3";"";"E";"F";""
"FILA4";"A";"";"";""


Muchas gracias de antemano. Expero haberme expresado correctamente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Exportar tabla multidimensional csv

Publicado por xve (5516 intervenciones) el 16/12/2015 15:10:07
Nos puedes adjuntar el array para probarlo?

No se muy bien porque pones un & delante de $row en esta linea:
1
foreach ( $arr as &$row ) {
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar tabla multidimensional csv

Publicado por Alberto Garcia (2 intervenciones) el 16/12/2015 16:45:55
No sé cómo puedo subir el array. Puedo pasar una captura de la tabla
Estos son los bucles que utilizo para crear la tabla. A partir de unas consultas a una base de datos hay casillas [i][j] que se rellenan. Los que están vacíos llevan un guión.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for ($i=1;$i<10;$i++){
        for($j=1;$j<10;$j++) {
                while($fila = mysql_fetch_array($sql)){
                        $array[$i][$j]= $fila['COL'];
                }
        }
}
 
for ($i=0;$i<10;$i++){
         for($j=0;$j<10;$j++) {
                if ($array[$i][$j] == ""){
                        $array[$i][$j]= "-";
                }
         }
}

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar