Saltar al contenido

Racket - excel


digitalboy

Recommended Posts

publicado

Hola a todos...

Desde hace unos meses que he estado buscando y probando nuevas herramientas que pueda utilizar en combinacion con Excel para poder ampliar mi caja de herramientas en programacion, al igual que ampliar mis horizontes y oportunidades...

Pues hace poco me tope con Racket el cual es un lenguaje funcional, descendiente de Lisp (el cual crei que era un lenguaje obsoleto y que no tenia nada que ofrecer, que equivocado estaba...) el cual relamente me ha impresionado la forma en como se programa haciendo uso al 100% de puras funciones. Decidi incursionar en Racket, despues de haber visto un video, el cual me dejo muy impresionado, aqui les dejo un link donde detallo mas profundamente acerca del video:

http://mexcel.wordpress.com/2013/10/28/programacion-funcional-con-racket/

Bien y que tiene que ver Racket con Excel? como escribi en mi blog, se puede acceder al modelo de objetos de Excel desde Racket por medio de COM (Modelo Objeto Componente) y la ventaja de esto, es quecon Racket se pueden generar archivos ejecutables (*.exe) con lo cual se protege el codigo y ademas tenemos a nuestro alcance todas las herramientas que Racket nos brinda.

Aqui dejo el link de un ejecutable que genere en Racket, el cual crea una instancia de Excel, añade un libro y escribe en una celda la palabra "hola":

https://skydrive.live.com/redir?resid=3DDA10C82EF39C90!902&authkey=!AJ4v5_COqt9YHYs

Y como luce el codigo en Racket? es es una muy buena pregunta, el codigo de mi programa es el siguiente:


#lang racket
(require ffi/com)
(define control-progid "Sysmon")
(define xl (com-create-instance "Excel.Application"))
(com-set-property! xl "Visible" #t)
(define libro (com-get-property xl "WorkBooks"))
(com-invoke libro "Add")
(define hoja (com-get-property xl "ActiveSheet"))
(define celda (com-get-property xl "ActiveCell"))
(com-set-property! celda "value" "hola")
[/PHP]

Si... sin duda alguna esto es muy diferente a lo que nos tienen acostumbrados los lenguajes imperativos, pero creo que vale la pena invertir algo de tiempo en aprender programacion funcional, sobre todo, si esta nos reportara grandes beneficios en nuestra forma de programar sin importar el lenguaje.

Esto es todo por el momento, mas adelante les compartire sobre otras dos herramientas que he descubierto, una de ellas que nos permitira programar en android usando Basic y la otra es un interprete que pesa menos de un mega que parece que puede hacer practicamente de todo, multiplataforma, que permite programar aplicaciones del lado del cliente y servidor, en fin ya sera despues...

Saludos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.