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
Ir a la versión completa