Solución para asignar diferentes archivos de Excel a db

Tengo que asignar muchos archivos diferentes con diferentes estructuras a una base de datos. Hay muchas tablas diferentes en esos xlsx, así que pensé en el enfoque noSQL sin esquema, pero soy bastante novato en este campo.

Debe ser un microservicio con interfaz de cliente para elegir tablas / celdas para analizar archivos xlsx. No tengo tecnología estricta; podría ser JAVA, GROOVY, Python o incluso un motor de JavaScript.

¿Conoces alguna solución de trabajo para hacerlo?

Aquí está el ejemplo xlsx (pero también tengo otros archivos, también en formato xls): http://stat.gov.pl/download/gfx/portalinformacyjny/pl/defaultaktualnosci/5502/11/13/1/wyniki_finansowe_podmiotow_gospodarczych_1- 6m_2015.xlsx

Respuesta 1

Tal vez debería probar Google Sheets para mostrar Excel y Google Apps Script ( https://developers.google.com/apps-script/overview ) para escribir un complemento personalizado para analizar datos en JSON. Servicio de hoja de cálculo ( https://developers.google.com/apps-script/reference/spreadsheet/ ) tiene muchos métodos para acceder a los datos en las hojas.

A continuación, puede enviar este JSON a través de la API ( https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app ) o colocarlo directamente en la base de datos ( https://developers.google.com / apps-script / guides / jdbc ).

Quizás no sea limpio, sino una solución rápida.

Respuesta: 2

El trabajo que tiene que hacer se llama ETL (Extract Transform Load) . Necesita encontrar un buen software ETL ( aquí hay una discusión sobre el código abierto ETL) o escribir su propia solución en un idioma con el que esté acostumbrado.

La ventaja de un software GUI listo es que solo tiene que arrastrar y soltar datos, pero si tiene algunos datos lógicos personalizados o semiestructurados como en su ejemplo xlsx, tiene soporte limitado.

La ventaja de escribir su propio guión es que tiene toda la libertad que necesita.

He realizado algunos trabajos ETL y utilicé Groovy con éxito para escribir mi propia solución con lógica personalizada, etc., y en términos de GUI, utilicé Altova Mapforce cuando tuve que importar algunos tipos de archivos exóticos.

Si decide escribir su propia solución, debe:

  1. Convierta todos los datos a un formato fácil de cargar. En su caso, debe convertir cada pestaña xls o xlsx a CSV con una convención de nomenclatura.
  2. Cargue sus archivos en el idioma elegido para transformar
  3. Haz tu lógica para poner los datos en un formato deseable
  4. Guárdelo en una base de datos (SQL o noSQL)
Respuesta: 3

Tuve un proyecto que funcionó casi igual que su problema, pero parece más fácil ya que tenía una estructura fija de archivos xlsx.

Para el análisis xlsx, experimenté con Python y Openpyxl y no tuve problemas mientras trabajaba con ellos, son simples, rápidos y fáciles de usar.

Para la base de datos, recomiendo usar MongoDB, puede manejar documentos y colecciones en MongoDB tan simple como trabajar con objetos JSON o un conjunto de objetos JSON. PyMongo es la mejor y recomendada forma de trabajar con MongoDB de Python, creo.

El problema es que tienes diferentes archivos con diferentes estructuras. No puedo recomendar nada más profundo sobre esto sin ver sus datos. Pero debe encontrar la estructura general de ellos o debe encontrar la manera de clasificarlos en conjuntos comunes, cada conjunto se analizará utilizando el algoritmo apropiado.

Respuesta: 4

Descripción del problema Estoy tratando de escribir una aplicación que capture el volumen hacia arriba / abajo y también los botones del auricular Bluetooth presionando cuando la aplicación está en segundo plano, primer plano, fondo y teléfono ...

Escuché sobre sistemas operativos escritos en Java, y todo esto me parece mágico, específicamente por una razón: acceso directo a la memoria. Administrar la memoria es de muy bajo nivel, y Java fue diseñado conscientemente ...

Estoy codificando algunos validadores para un servicio REST que analiza un JSON y descubrí algo que me suena extraño (no soy un experto en JAVA en absoluto). Considere tener dos ArrayLists: ArrayList <...

Estoy leyendo algunos libros de programación y estoy haciendo lecciones en línea en este momento (así que no hay maestros que preguntar) y he visto en cada uno de ellos lo mismo que se dice. En cada una dice que cuando estás ...