Importando datos Excel a una base de datos MySQL con PHP

Importando datos Excel a una base de datos MySQL con PHP

Importando datos Excel a una base de datos MySQL con PHP


Importando datos Excel

Muchas aplicaciones PHP necesitan procesar archivos Excel, para distintos propósitos, lo más común es importar datos desde un archivo e insertarlos en una base de datos.

En este tutorial aprenderemos como importar fácilmente un archivo Excel en formato  XLSX e insertar los datos en una base de datos MySQL usando la clase SimpleXLSX.

¿Qué es XLSX?

XLSX es un archivo usado para crear una hoja de cálculo Excel. Fue introducido por Microsoft en Excel 2007. Se basa en XML, lo que facilita la transferencia de datos entre aplicaciones.

Un archivo XLSX almacena los datos en hojas de cálculo en forma de celdas. Las células están contenidas en filas y columnas que pueden tener múltiples propiedades de los datos de celda como estilos, formato, alineación, etc.

XLSX es en realidad un simple archivo que  contiene una clase PHP, para gestionar toda la información de las propiedades de la hoja de cálculo.

Pasando un archivo XLSX a PHP

Hay varias maneras de pasar  XLSX a PHP. Como se mencionó anteriormente, la clase esta basada en XML.
Hay algunas clases muy populares, disponibles para leer datos de un archivo XLSX usando PHP, entre ellas se encuentran:
1. PHP-ExcelReader
2. PHPExcel
3. SimpleXLSX
En este artículo me centraré más en la clase SimpleXLSX y cómo utilizarlo para analizar archivos XLSX e importar sus datos en una base de datos MySQL.
Usando la clase SimpleXLSX podemos obtener los datos de la hoja de cálculo en forma de filas.

Formas de importar XLSX en MySQL

Dado que un archivo XLSX contiene varios archivos, no se puede importar directamente a MySQL. Así que la forma recomendada es convertir el archivo XLSX en un archivo CSV y luego importarlo a la base de datos.

También hay  herramientas en línea,  que se puede utilizar para ello, en donde solo bastará cargar el archivo XLSX y crear las instrucciones de insertar los datos.

También hay un montón de software de escritorio como: Excel2MySQL, Navicat, MySQL para Excel, etc.  Puedes utilizar también  la clase SimpleXLSX para convertir los datos conPHP.

Importando XLSX en MySQL con PHP

Como mencioné anteriormente, puede utilizar convertidores XLSX escritos en PHP para importar datos de archivos XLSX en una base de datos MySQL.

Ahora te puedes preguntar, porqué  complicarse la vida si hay otras formas mas faciles de importar archivos Excel en una base de datos MySQL

Bueno, puede haber muchas herramientas que faciliten la importación de datos  XLSX en una base de datos automáticamente, pero yo he elegido hacer esto usando SimpleXLSX, ya que tengo el control total de los datos .
El primer método que veremos a continuación, consiste en leer un archivo XLSX con PHP y luego cambiarlo a formato CSV e importarlo en MySQL, se puede hacer usando un código similar al siguiente:

Usando el código de arriba, puedes pasar un archivo  XLSX a un archivo CSV , luego podrás importarlo fácilmente el archivo CSV generado, a una base de datos MySQL.

Ahora el otro método para hacer esto es leer el archivo XLSX  y convertirlo en un array, luego importarlo la base de datos, usando las extensiones mysqli o PDO. Puedes hacerlo utilizando un código similar al siguiente:

Descarga el paquete SimpleXLSX

Es bastante fácil leer un archivo XLSX.  La clase SimpleXLSX proporciona una manera fácil de leer y convertir cualquier archivo XLSX para que pueda ser procesado de cualquier manera que tu aplicación PHP necesite,  o incluso insertar los datos en una base de datos MySQL por ejemplo.
Puedes descargar los archivos usando en este ejemplo en formato ZIP.

Comparte este artículo con otros desarrolladores de PHP o a colegas que pueden beneficiarse de esta información. Si tienes preguntas o sugerencias, envía un comentario a continuación.