Insertar macros en Python dentro de un archivo de Calc
Publicado: Dom Ene 12, 2014 6:37 am
Hola grupo,
Estoy interesado en incluir algunas macros que estoy traduciendo de OOOBasic a Python dentro de archivos de Calc, para que las macros esten disponibles en cualquier equipo donde se abra el archivo.
Como la interfaz de Calc solo permite este tipo de operaciones con archivos de OOOBasic, me guie por un documento publicado por la wiki de OpenOffice.org: "https://wiki.openoffice.org/wiki/ES/Man ... imeraMacro"
Segui los pasos indicados:
Un archivo de Apache OpenOffice es realmente un archivo ZIP con una estructura determinada, por lo que puedes, también, manipularlos con tu programa favorito para este tipo de archivos. Crea y guarda un archivo nuevo de Calc, ciérralo y ábrelo ahora con tu programa ZIP. Crea las carpetas Scripts/python en la raíz del archivo. Dentro de esta carpeta agrega los archivos con las macros, para nuestro ejemplo holamundo.py. Ahora, edita el archivo manifest.xml que esta en la carpeta META-INF, a cuyo contenido agrégale las siguientes líneas, justo antes del cierre </manifest:manifest>.
<manifest:file-entry manifest:media-type="" manifest:full-path="Scripts/python/nombre_modulo.py"/>
<manifest:file-entry manifest:media-type="application/binary" manifest:full-path="Scripts/python/"/>
<manifest:file-entry manifest:media-type="application/binary" manifest:full-path="Scripts/"/>
</manifest:manifest>
Guarda los cambios y cierra el archivo.
Cada vez que realizo, estas acciones y trato de abrir el archivo resultante con Calc. El programa me informa que el archivo "esta corrupto" y permite la reparacion del mismo. Despues de esto, funciona perfectamente, sin embargo, es una molestia tener que estarlo reparando cada vez que hago una edicion a las macros.
He ensayado con WinRar y 7Zip con los mismos resultados.
Realmente no se por que se corrompe el archivo. Si alguien puede darme una idea se lo agradeceria.
Por otra parte, veo que descomprimir el archivo, editar el manifiesto, cada vez que se desee insertar un modulo al archivo y la creacion de las 2 carpetas (para cada archivo con macros), es un poquito tediosa. Pienso que esto puede automatizarse facilmente, pero antes de acometer esta labor, me pregunto si alguien con mas experiencia que yo ya lo haya echo, y compartido con el grupo.
Saludos,
Henry Sanchez
Estoy interesado en incluir algunas macros que estoy traduciendo de OOOBasic a Python dentro de archivos de Calc, para que las macros esten disponibles en cualquier equipo donde se abra el archivo.
Como la interfaz de Calc solo permite este tipo de operaciones con archivos de OOOBasic, me guie por un documento publicado por la wiki de OpenOffice.org: "https://wiki.openoffice.org/wiki/ES/Man ... imeraMacro"
Segui los pasos indicados:
Un archivo de Apache OpenOffice es realmente un archivo ZIP con una estructura determinada, por lo que puedes, también, manipularlos con tu programa favorito para este tipo de archivos. Crea y guarda un archivo nuevo de Calc, ciérralo y ábrelo ahora con tu programa ZIP. Crea las carpetas Scripts/python en la raíz del archivo. Dentro de esta carpeta agrega los archivos con las macros, para nuestro ejemplo holamundo.py. Ahora, edita el archivo manifest.xml que esta en la carpeta META-INF, a cuyo contenido agrégale las siguientes líneas, justo antes del cierre </manifest:manifest>.
<manifest:file-entry manifest:media-type="" manifest:full-path="Scripts/python/nombre_modulo.py"/>
<manifest:file-entry manifest:media-type="application/binary" manifest:full-path="Scripts/python/"/>
<manifest:file-entry manifest:media-type="application/binary" manifest:full-path="Scripts/"/>
</manifest:manifest>
Guarda los cambios y cierra el archivo.
Cada vez que realizo, estas acciones y trato de abrir el archivo resultante con Calc. El programa me informa que el archivo "esta corrupto" y permite la reparacion del mismo. Despues de esto, funciona perfectamente, sin embargo, es una molestia tener que estarlo reparando cada vez que hago una edicion a las macros.
He ensayado con WinRar y 7Zip con los mismos resultados.
Realmente no se por que se corrompe el archivo. Si alguien puede darme una idea se lo agradeceria.
Por otra parte, veo que descomprimir el archivo, editar el manifiesto, cada vez que se desee insertar un modulo al archivo y la creacion de las 2 carpetas (para cada archivo con macros), es un poquito tediosa. Pienso que esto puede automatizarse facilmente, pero antes de acometer esta labor, me pregunto si alguien con mas experiencia que yo ya lo haya echo, y compartido con el grupo.
Saludos,
Henry Sanchez