• Domingo 17 de Noviembre de 2024, 19:59

Autor Tema:  Como leer un .ODS en PHP? o...  (Leído 2064 veces)

mkz14

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Como leer un .ODS en PHP? o...
« en: Jueves 25 de Marzo de 2010, 17:31 »
0
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
  1. while (($datos = fgetcsv($archivo, 0, ":")) !== FALSE)
  2.         {
  3.             //Hacemos un IF para que no coja las 5 primeras columnas del csv ya que no contienen informacion ni ningun registro
  4.              if ($columna < 5)
  5.                 {
  6.                    $columna++;
  7.                 }
  8.                     else
  9.                 {
  10.                     //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
  11.                     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;
  12.                     //Escribimos la instruccion SQL para introducir los datos uno a uno , mostraremos un mensaje si falla en alguna y sumamos al contador de columnas
  13.                     $registros = "INSERT INTO  `alumnos` (  `Idescolar` ,  `Nombre` ,  `Dni` ,  `Codgrupo` ) VALUES ('$IdEscolar', '$Alumno',  '$DNI', NULL);";
  14.                     @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>");
  15.                     $columna++;
  16.                  }
  17.         }
  18.                     //Una vez que los registros han sido insertados correctamente se mostrara con el siguiente mensaje
  19.                     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>";
  20. }
  21.