informatica:programacion:php:phpexcel
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:php:phpexcel [2024/10/02 11:44] – [Nueva hoja] tempwin | informatica:programacion:php:phpexcel [2025/05/12 15:25] (actual) – [Escribir en formato fecha Excel] tempwin | ||
|---|---|---|---|
| Línea 6: | Línea 6: | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| - | PHPExcel está obsoleto desde la versión 1.8.1 (año 2015). A día de hoy, su sucesor es [[https:// | + | Las notas aquí recogidas se centran en la versión 1.8.1 (año 2015) que ya está obsoleta. A día de hoy, su sucesor es [[https:// |
| </ | </ | ||
| Línea 39: | Línea 39: | ||
| $objPHPExcel-> | $objPHPExcel-> | ||
| </ | </ | ||
| + | |||
| + | ==== Dimensiones de una hoja ==== | ||
| + | |||
| + | Para obtener la última fila y columna que Excel reconoce: | ||
| + | |||
| + | <code php> | ||
| + | $ultima_fila = $objPHPExcel-> | ||
| + | $ultima_columna = $hoja-> | ||
| + | </ | ||
| + | |||
| + | Sin embargo, puede ocurrir que la última fila / columna sea mucho mayor de lo esperado porque incluso los estilos pueden falsificar los valores más altos almacenados. Si abrimos el fichero en Excel y presionamos la combinación < | ||
| + | |||
| + | Una solución a esto en PHPExcel, es utilizar los métodos (lentos) '' | ||
| + | |||
| + | <code php> | ||
| + | $ultima_fila_con_datos = $objPHPExcel-> | ||
| + | $ultima_columna_con_datos = $hoja-> | ||
| + | </ | ||
| + | ===== Fechas ===== | ||
| + | |||
| + | ==== Convertir desde formato Excel ==== | ||
| + | |||
| + | Excel almacena las fechas como el tiempo transcurrido desde el 01/01/1900 (en algunas versiones utiliza el 01/ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Para fechas anteriores a 01/01/1900, Excel las representa como una cadena de texto. | ||
| + | </ | ||
| + | |||
| + | Si extraemos una fecha con PHPExcel, obtendremos un número decimal con los días transcurridos. Para transformarlo a fecha UNIX (01/ | ||
| + | |||
| + | <code php> | ||
| + | $fecha_unix = ($fecha_excel - 25569) * 86400; | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | '' | ||
| + | </ | ||
| + | |||
| + | A partir de entonces, ya podríamos utilizar '' | ||
| + | |||
| + | <code php> | ||
| + | echo gmdate(" | ||
| + | </ | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | ==== Escribir en formato fecha Excel ==== | ||
| + | |||
| + | Si un valor de texto lo que queremos transformar en un dato de fecha de Excel, primero tenemos que pasarlo a un valor de fecha Excel (un número): | ||
| + | |||
| + | <code php> | ||
| + | $obj-> | ||
| + | -> | ||
| + | </ | ||
| + | |||
| + | Y ahora cambiamos el formato de esa celda a tipo fecha con la máscara que queramos: | ||
| + | |||
| + | <code php> | ||
| + | $obj-> | ||
| + | -> | ||
| + | -> | ||
| + | // | ||
| + | -> | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | La constante '' | ||
| + | </ | ||
| + | |||
| + | ===== Recursos ===== | ||
| + | |||
| + | * [[https:// | ||
informatica/programacion/php/phpexcel.1727862264.txt.gz · Última modificación: por tempwin
