Preparar el fichero
El excel con el que vamos a trabajar en este ejemplo es el siguiente:
Para importar nuestro fichero debemos tener en cuenta que no es posible importar el Excel directamente, sino que tenemos que guardarlo como un CSV separado por comas o cualquier otro delimitador. En el caso de Excel para Mac haz clic en el menú Archivo > Guardar como… y especifica el formato del archivo como CSV codificado.
Guarda el CSV en el mismo servidor donde esta instalado Postgres. Lo puedes guardar en cualquier carpeta, pero debes asegurarte de que la carpeta y el fichero tengan los permisos suficientes como para que sea leído por la base de datos. Para evitar este problema he guardado el fichero en la ruta de instalación de Postgres.
Crear tabla en Postgres
La sentencia a ejecutar para crear esta tabla llamada importar_csv es la siguiente:
CREATE TABLE IF NOT EXISTS importar_csv ( matricula VARCHAR(100), marca VARCHAR(100), modelo VARCHAR(100), fecha date );
Puedes utilizar tu cliente favorito o directamente PgAdmin si tienes acceso. El resultado en PgAdmin es el siguiente:
Importar CSV en Postgres
Para importar los datos voy a utilizar la instrucción COPY, donde se le indica la tabla donde va hacer la inserción, los campos, la ubicación del fichero, cual es su delimitador y si tiene cabecera o no.
COPY importar_csv(matricula, marca, modelo, fecha) FROM '/Library/PostgreSQL/uploads/Excel_ejemplo.csv' DELIMITER ';' CSV HEADER;
Al ejecutarlo no debería presentar ningún error, pero el más común, es por falta de permisos de lectura sobre el fichero. El resultado de la ejecución es el siguiente:
Resultado
Sí hacemos un select sobre la tabla podremos ver el resultado del COPY.