Programación Web y Scripting > PHP

 Como leer un .ODS en PHP? o...

(1/1)

mkz14:
Buenas pues vereis, estoy haciendo un proyecto de fin de curso y me planteo un problema. Tengo que hacer que se pueda importar mediante una web en php un archivo .ODS (En plan Excel pero de OpenOffice) a una base de datos mysql, por lo tanto necesito leer el .ODS y aplicarle una variable a cada fila del documento para asi poderlas tratar y meterlas en su sitio correspondiente. He probado importando un archivo .CSV dividido en: ":" en vez de comas porque en el ODS hay nombre en plan apellido1 apellido2, nombre y lo tomaba como dos campos asi que tenia que usar ":".

Mi preguntas son:
- se puede leer el .ODS y declarar a cada fila una variable para meterlo mediante mysql (en el php) en la base de datos?
- en caso de que lo primero no se pueda, se puede convertir sobre la marcha el .ods a .csv compatible para luego utilizar el script que ya esta hecho y que asi el usuario solo tenga que elegir el archivo .ods y no pasarlo a .csv?

Muchas gracias de antemano, este es el codigo que lee desde el csv:

--- Código: PHP ---while (($datos = fgetcsv($archivo, 0, ":")) !== FALSE)        {            //Hacemos un IF para que no coja las 5 primeras columnas del csv ya que no contienen informacion ni ningun registro             if ($columna < 5)                {                   $columna++;                }                    else                {                    //Declaramos como variable todos los datos que vienen del registro para asi luego tratarlos individualmente. Usamos la funcion list y la igualamos a la variable $datos                    list($Alumno, $EstadoMatricula, $IdEscolar, $DNI, $Direccion, $Codigopostal, $Localidad, $fnacimiento, $Provincia, $Telefono, $Telefonourgencia, $email, $Curso, $expediente, $Unidad, $Primerapellido, $Segundoapellido, $Nombre, $DNIPrimerTuror, $PrimerApellidoPrimerTutor, $SegundoApellidoPrimerTutor, $NombrePrimerTutor, $SexoPrimerTutor, $DNISegundoTutor, $PrimerApellidoSegundoTutor, $SegundoApellidoSegundoTutor, $NombreSegundoTutor, $SexoSegundoTutor, $Locnacimiento, $Anyomatricula, $NumMatriculasEnEsteCurso, $ObservacionesMatrícula, $ProvinciaNacimiento, $PaisNacimiento, $Edad31_12DelAnyoDeMatricula, $Nacionalidad, $Sexo) = $datos;                    //Escribimos la instruccion SQL para introducir los datos uno a uno , mostraremos un mensaje si falla en alguna y sumamos al contador de columnas                    $registros = "INSERT INTO  `alumnos` (  `Idescolar` ,  `Nombre` ,  `Dni` ,  `Codgrupo` ) VALUES ('$IdEscolar', '$Alumno',  '$DNI', NULL);";                    @mysql_query($registros) or die ("<table align=center bgcolor='silver' width='40%' border=2><tr><td align=center>ERROR: No se ha podido introducir el registro.<br>Posiblemente esto se deba a que la BD no ha sido creada con el entorno de esta misma pagina web<hr><a href='cpanel.php'>Volver a intentarlo</a></table>");                    $columna++;                 }        }                    //Una vez que los registros han sido insertados correctamente se mostrara con el siguiente mensaje                    echo "<table align=center bgcolor='silver' width='40%' border=2><tr><td align=center>Datos introducidos satisfactoriamente.<hr><a href='cpanel.php'>Volver al menu.</a></table>";} 

Navegación

[0] Índice de Mensajes

Ir a la versión completa