tutorial poi example create java apache excel charts apache-poi

example - create excel java poi



Crear un gráfico de Excel utilizando Apache POI (6)

Necesito crear una hoja de Excel desde mi código Java, que contiene gráficos como el gráfico de barras, el gráfico de líneas, etc., utilizando la biblioteca de Apache POI. ¿Es posible? No puedo encontrar ningún ejemplo de código útil para el mismo.

¿Hay alguna otra alternativa para esto aparte de la biblioteca de POI para Java?


¿Hay alguna otra alternativa para esto aparte de la biblioteca de POI para Java?

También hay algunas otras bibliotecas, pero no estoy seguro si pueden escribir algo así como un gráfico.

Si puede usar las versiones más recientes de Office (las que usan los archivos de formato basado en XML), entonces podría usar un enfoque diferente:

  • cree un archivo de Excel con una versión más reciente de Office, que contenga los gráficos que necesita y algunos datos ficticios.
  • descomprima el archivo de Excel y extraiga los archivos XML desde adentro. De mayor interés serán los archivos xl / worksheets / sheet1.xml xl / worksheets / sheet2.xml o xl / worksheets / sheet3.xml (dependiendo de las hojas que se usaron)
  • Observe el formato del archivo (es más complicado que usar un PDI), pero no debería ser tan difícil identificar los datos "ficticios" que ingresó anteriormente.
  • Use Velocity o FreeMarker para transformar ese archivo xml en una plantilla (al reemplazar sus datos ficticios con variables y macros, lo que produciría el mismo resultado)
  • Escriba un pequeño programa (solo unas pocas líneas) que lleve datos reales, se fusione con la plantilla y vuelva a empaquetar todo en un archivo zip, pero coloca la extensión * .xlsx.

Sé que los pasos anteriores parecen un poco complicados, pero si no tiene archivos de Excel demasiado complicados, debería ser más fácil de lo que parece.


Aquí está el ejemplo de trabajo .

  • Tengo datos en JSON y archivo de plantilla .xlsm con macro. - No se necesita nombre de tabla, datos o rango en Excel

  • Clona la hoja de plantilla cada vez que necesita crear una hoja con gráfico, coloca un tipo de gráfico requerido en z1 y cambia el gráfico de líneas predeterminado que se insertó en el tipo de gráfico apropiado. Elimina el tipo de gráfico de z1 para evitar la ejecución múltiple.

Espero eso ayude.


El hilo parece viejo y no sé si ya has encontrado una forma o todavía estás buscando una.

Pero esto es lo que yo haría. Hay una biblioteca gratuita llamada JFreeChart . Puede usar eso para generar un archivo JPG o PNG que luego puede insertar en el archivo excel cuando lo crea con Apache POI.

Pero la desventaja con este método es que los datos en el gráfico no cambiarán dinámicamente cuando cambie los datos en la hoja de cálculo como es el caso de Excel. Ahora eso es algo con lo que no puedo vivir.

Así que voy a hacer una investigación ahora. Estoy bastante seguro de que, dado que se ha formulado la pregunta, debe haber una adición de una característica en Apache POI u otra forma elegante de hacer las cosas. Si encuentro alguno, me aseguraré de publicar mis resultados aquí.

---- ACTUALIZACIÓN ----

En mi investigación que duró aproximadamente una hora, solo pude encontrar una biblioteca adecuada llamada SmartXLS (por favor, búsquelo en Google, no pude publicar el enlace porque soy un novato y el mecanismo de prevención de spam activado) que está remotamente cerca de lo que hago. usaría. Puede generar tanto el Excel como el gráfico a través de un programa. El sitio web es muy simple y no pude encontrar ninguna información de licencia, así que asumo que es gratis para uso personal y comercial. Pude descargar la biblioteca sin ningún problema. No lo he usado todavía. Déle una oportunidad y háganos saber cómo funciona.



Esto será extremadamente complicado de hacer desde cero, ya que tendrá que averiguar qué debe ir en el archivo de Excel para crear los gráficos. Yo iría por una ruta diferente.

Cree un archivo de Excel que incluya una macro que cree el gráfico de barras, etc. para algunos datos (utilizando Excel de la manera habitual). Luego, use Apache POI para crear un archivo con los datos que desea e inicie Excel desde Java, ejecutando la macro que crea los gráficos.


Solo puede usar la plantilla de Excel para conservar el gráfico con POI. Significa que crea un archivo de plantilla de Excel con un gráfico en él y vincula la fuente de datos del gráfico a un nombre definido, luego puede cargar el archivo de plantilla desde POI y usar el código para cambiar el nombre definido. El PDI actual no admite la creación de gráficos desde cero.