PHP - Codigo PHP para exportar formulario HTML a excel

 
Vista:
sin imagen de perfil

Codigo PHP para exportar formulario HTML a excel

Publicado por Jordi (2 intervenciones) el 14/09/2018 16:04:55
Salutaciones,

Tengo un mini formulario HTML que necesitaría que los datos automáticamente se exportaran a un archivo Excel al pulsar el botón “Submit” pero no me termina de funcionar.

Tengo un código PHP que en principio tendría que crear el archivo XLS si no está creado, y rellenar los campos con los valores entrados en el formulario HTML. En principio el archivo XLS se crea correctamente, la primera fila corresponde a titulo de los valores, pero no me rellena los valores entrados en el formulario. Y en vez de ir a la pagina de Error.html para indicar que algo ha ido mal me salta a la pagina de ok.html como si todo hubiera ido bien.

Alguien me podría echar una mano por favor.

Muchas gracias!

El código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
    $success = "ok.html";
    $error = "error.html";
 
    // Change this to the character(s) you want to be placed instead of line breaks(new line, enter, etc)
    $lbChar = " ";  // default is a space, you may change it to whatever you want
 
    // Don't change anything below this line
 
    // Determine if the form was sent through the GET methog or the POST method.
    if($_POST){
        $array = $_POST;
    } else if($_GET){
        $array = $_GET;
    } else {
            die("You must Access this file through a form.");   // If someone accesses the file directly, it wont work :)
    }
 
    //Check if the filename was sent through the form or not
    if(!$array['filename']){
        // if the filename wasnt sent through the form, it will become form.xls, you can change the default if you want.
        $array['filename'] = "form.xls";  //Set the file to save the information in
    } else {
        if(!(stristr($array['filename'],".xls"))){
            $array['filename'] = $array['filename'] . ".xls";
        }
    }
 
    // Define the tab and carriage return characters:
    $tab = "\t";    //chr(9);
    $cr = "\n";     //chr(13);
 
    if($array){
        // Make The Top row for the excel file and store it in the $header variable
        $keys = array_keys($array);
        foreach($keys as $key){
            if(strtolower($key) != 'filename' && strtolower($key) != 'title'){
                $header .= $key . $tab;
            }
        }
        $header .= $cr;
 
        //Make the line with the contents to write to the excel file.
        foreach($keys as $key){
            if(strtolower($key) != 'filename' && strtolower($key) != 'title'){
 
                $array[$key] = str_replace("\n",$lbChar,$array[$key]);
                $array[$key] = preg_replace('/([\r\n])/e',"ord('$1')==10?'':''",$array[$key]);
                $array[$key] = str_replace("\\","",$array[$key]);
                $array[$key] = str_replace($tab, "    ", $array[$key]);
                $data .= $array[$key] . $tab ;
            }
        }
        $data .= $cr;
 
        if (file_exists($array['filename'])) {
            $final_data = $data;        // If the file does exist, then only write the information the user sent
        } else {
            $final_data = $header . $data;      // If file does not exist, write the header(first line in excel with titles) to the file
        }
        // open the file and write to it
 
        $fp = fopen($array['filename'],"a"); // $fp is now the file pointer to file $array['filename']
 
        if($fp){
 
            fwrite($fp,$final_data);    //Write information to the file
            fclose($fp);        // Close the file
            // Success
            header("Location: $success");
        } else {
            // Error
            header("Location: $error");
        }
    }
?>
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
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Codigo PHP para exportar formulario HTML a excel

Publicado por Yamil Bracho (888 intervenciones) el 14/09/2018 16:27:45
Ejecuta print_r ($array) despues que determinas el valor de $array cuando lo tomas del $_GET o de $_POST y asi ves si hay valores o no...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Codigo PHP para exportar formulario HTML a excel

Publicado por jordi (2 intervenciones) el 14/09/2018 23:43:11
Muchas gracias por contestar.

He ejecutado un print_r ($array) y efectivamente me muestra los valores.

Gracias de nuevo.
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

Codigo PHP para exportar formulario HTML a excel

Publicado por Antonio (2 intervenciones) el 18/03/2019 07:18:39
Hola, estoy con el mismo problema. Me puedes indicar en qué parte colocaste ale "print" para que te funcionara o mandarme el código ya corregido a [email protected] 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

Codigo PHP para exportar formulario HTML a excel

Publicado por Ramon Romeu (1 intervención) el 21/03/2021 12:06:19
Buenos días Jordi. Ya sé que esto es de hace mucho tiempo, pero no acabo de entender bien como lo solventaste.
Podías ayudarme. No sé que modificación hicieste exactamete para que funcionara.

Saludos y muchas gracias
Ramón
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

Codigo PHP para exportar formulario HTML a excel

Publicado por LUCIANO (1 intervención) el 23/09/2021 20:51:54
Me podrias pasar como queda el código modificado para que funcione? No entiendo donde va el print_r ($array)

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

Codigo PHP para exportar formulario HTML a excel

Publicado por Alexis (1 intervención) el 15/07/2020 23:50:52
en que parte se coloca el aray?
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Codigo PHP para exportar formulario HTML a excel

Publicado por joel (1269 intervenciones) el 16/07/2020 08:50:49
El array es la variable que se encuentra entre los paréntesis del print!!

1
2
$array=[1,2,3];
print($array)
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
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Codigo PHP para exportar formulario HTML a excel

Publicado por Mauro (1036 intervenciones) el 20/09/2018 17:36:01
Respecto de por qué va a la página de éxito en lugar de la de error, el problema es que la condición para hacer una o la otra es simplemente que el archivo se haya podido abrir.

La línea
1
$fp = fopen($array['filename'],"a");
.

Basta con que el nombre del archivo sea legal y haya permisos de escritura sobre la ruta para que el script redireccione a la página de éxito (Independientemente de lo que haya pasado con el contenido del archivo xls).

Por lo demás, hay que ver si lo que llega por el $_POST o el $_GET tiene lo que necesitas guardar... ahí vale lo que dice Yamil.

Por último, te recomiendo usar alguna librería para Excel como PHPSpreadsheet.
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

Codigo PHP para exportar formulario HTML a excel

Publicado por Antonio (2 intervenciones) el 18/03/2019 05:57:23
Hola amigos, tengo un formulario en html que recoge los datos de los estudiantes interesados (nombres, apellidos, correo, celular) y esos datos me llegan a mi correo pero deseo que esos datos se acumulen en un archivo de excel. Soy muy novato en éste tema, asi que les agradezco paciencia y minuciosa explicación, 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

Codigo PHP para exportar formulario HTML a excel

Publicado por David (1 intervención) el 18/03/2019 07:25:29
Puedes utilizar la libreria PHPExcel
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