Este post fue aprobado por nuestros expertos así garantizamos la exactitud de nuestro tutorial.
Solución:
No creo que esto sea posible. POI es una biblioteca para leer/editar archivos de Office, las macros son otra bestia. Tendría que implementar un Intérprete de Visual Basic para Aplicaciones en POI para lograr esto. Las macros que ya están en su libro de Excel se conservan, pero no puede agregar nuevas ni llamar a las existentes.
Puede usar otra herramienta como com4j. Creé un POC hoy y funciona de maravilla. Solo sigue estos pasos:
- Descarga la última versión aquí
- Usando Apache Ant construye la muestra: muestrasexcel
-
Con el código generado por tlbimp (es solo una parte de com4j), cree una pequeña aplicación y escriba un código como:
// Starts excel and open an existing workbook _Application app = ClassFactory.createApplication(); app.setVisible(0, true); _Workbook wb = app.getWorkbooks().open("c:\test.xlsx", null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0); // run a macro Variant macro = new Variant(Variant.Type.VT_BSTR); macro.set("my_macro"); wb.getApplication().run(macro, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); // Save the excel file and quit Variant saveBeforeExit = new Variant(Variant.Type.VT_BOOL); saveBeforeExit.set(1); wb.close(saveBeforeExit, Variant.getMissing(), Variant.getMissing(), 0); app.quit();
-
Más ejemplos: tutoriales de com4j
Creo que no puedes.
macros
No se pueden crear macros. Sin embargo, leer y volver a escribir archivos que contengan macros conservará las macros de forma segura.
Limitaciones de puntos de interés de Apache
Sección de Reseñas y Valoraciones
Recuerda algo, que te brindamos la opción de añadir una estimación objetiva .