aelena.com

15 January 2007

La forma más simple de ejecutar una macro desde c#

Filed under: Office, c#, excel, macros — admin @ 12:09

Supongamos que queremos ejecutar una macro en excel desde c#. La forma más sencilla que veo yo es a través de Reflection. Veamos un ejemplo:

ApplicationClass excelApp = new ApplicationClass();
Workbook w = excelApp.Workbooks.Open("miExcel.xls",Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing );

RunMacro(w.Application, new object [] {"Nombre_Macro"});

Con este código hemos abierto un archivo de excel y hemos llamado a una función que nos va a ejecutar la macro.

Veamos ahora esa función:

private static void RunMacro(object oApp, object[] oRunArgs)
{
oApp.GetType().InvokeMember("Run",
System.Reflection.BindingFlags.Default |
System.Reflection.BindingFlags.InvokeMethod,
null, oApp, oRunArgs);
}

Así de sencillo. Saludos.

4 January 2007

My blog is writing a blog

Filed under: General — admin @ 8:13

El otro día me encontré con esta aplicación, RSSBus, que permite la fácil - según ellos - creación de feeds para cualquier aplicación que pueda hacer uso de sus servicios web.

“Easily create RSS feeds from Databases, Spreadsheets, Emails, Directories, etc…RSSBus enables you to easily add an RSS-based API to your web site, other servers, or your desktop”

Ya se hablaba de hacer que las XBox 360 tuvieran la capacidad de “bloguear” sobre los hábitos de sus jugadores y demás. Conforme aumenten las capacidades de memoria y procesamiento y se mejore la “capacidad inteligente” de aplicaciones y sistemas, es más que posible que veamos una proliferación de blogjects, al estilo de los experimentos de Julian Bleecker, de “Pigeons that blog” y demás.

No es nada descabellado imaginar blogs, o más bien rss feeds, en nuestros vehículos; al fin y al cabo ya estamos acostumbrados a rastrear el paso por el mundo de nuestros paquetes de Amazon.  Tecnologías como RFID, pese a todos sus inconvenientes y detractores - con razón - están aquí para quedarse y contribuirán a esta espiral de creación de contenidos on line a cargo de objetos inanimados, e incluso intangibles. ¿Porqué no podrían escribir un blog una Bolsa o un fondo de inversión?

Por otro lado esto podría parecer que abre un poco más la puerta a los habituales escenarios “gran hermano” y 1984; no sin razón, pensar en que objetos con los que interactuamos de manera cotidiana puedan “bloguear” sobre nosotros, sobre nuestros hábitos y acciones, espiarnos, da un cierto “mal rollito.”

3 January 2007

Interoperabilidad para Servicios Web entre .Net y Java

Filed under: Integracion, Servicios Web — admin @ 12:10

Sun anuncia un kit de interop para Servicios Web tanto en Java con en .Net que haría compatible el consumo de servicios recíproco de servicios implementados en ambas plataformas. Se trata del denominado WSIT (a.k.a. Tango) o Web Services Interoperability Technology. La idea es ofrecer una implementación - además en código abierto, como parece que es ahora la política de Sun - que permita la interoperabilidad entre servicios web Java - dentro de un marco enterprise - y la nueva tecnología de Microsoft, WCF (a.k.a. Indigo), facilitando el desarrollo y mantenimiento - así como la reutilización de código ya escrito sin necesidad de nuevas migraciones - de aplicaciones compuestas y distribuidas dentro de una arquitectura orientada a servicios.

Este proyecto deriva del trabajo hecho para Jax-WS, la API para servicios web en Java, y al igual que WCF, implementa las principales especificaciones WS-*:

  • Messaging (SOAP, MTOM, WS-Addressing)
  • Metadata (WSDL, WS-Policy, WS-Metadata Exchange)
  • Security (WS-Security Policy, WS-Security, WS-Trust, WS-Secure Conversation)
  • Quality-of-Service (WS-Reliable Messaging, WS-Coordination, WS-Atomic Transactions)

Esta infraestructura permite a clientes .Net o Java llamar a servicios .Net o Java de forma transparente y sin tener que ocuparse de la codificación de las cabeceras HTTP, o de la correcta transmisión de datos adjuntos, o de la gestión de sesiones seguras y confiables.

La gente de Sun afirma que se han realizado pruebas intensivas para verificar la correcta interoperabilidad, incluyendo escenarios con especificaciones WS-* algo más complejas como son “secure transactions” o “reliable messaging.”

NetBeans 5.5 incluye soporte completo para el desarrollo. La plataforma de despliegue sería GlassFish V2, que ya ofrece interoperabilidad con .Net 3.0 “out-of-the-box.”

Puede descargarse aquí. Un útil tutorial.