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:
La tabla está almacenada en un array multidimiensional array[$FILA][$COL] y le pinto a través del siguiente código correctamente:
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:
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
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
0