Mostrando entradas con la etiqueta Interop. Mostrar todas las entradas
Mostrando entradas con la etiqueta Interop. Mostrar todas las entradas

miércoles, 12 de diciembre de 2012

Usar un fichero Excel desde un servicio de Windows


Si intentas manejar un fichero Excel con las librerías de interoperalilidad desde un servicio de Windows desarrollado en .Net, te encontrarás con una Excepción poco esclarecedora: "Microsoft Office Excel cannot access the file".

El problema se debe a que un servicio de Windows, independientemente del usuario de ejecución que se configure, se ejecuta en un perfil especial, el systemprofile. Este perfil no tiene una carpeta de escritorio, sin embargo la librería de interoperabilidad de Excel, para modificar un documento Excel, lo intenta abrir en segundo plano en el escritorio. Al no existir la ruta, se provoca esta excepción.

Por tanto, en el momento de la instalación es necesario crear la carpeta de escritorio (Desktop) en función de la arquitectura del servidor:


  • Servidor de 32bits: %WINDIR%\System32\config\systemprofile\Desktop
  • Servidor de 64bits: %WINDIR%\SysWOW64\config\systemprofile\Desktop


lunes, 17 de septiembre de 2012

Mover hojas de Excel dentro de un libro con vb.Net

Este artículo explicará cómo ordenar a tu antojo las hojas de un libro Excel utilizando el API de interoparibilidad.

Para este ejemplo vamos a suponer que hemos creado ya un Excel y rellenado el contenido de dos hojas llamadas "Datos" e "INFORME". La Hoja Excel la hemos generado en una variable llamada ficheroExcel.

Al generar la hoja Excel con nuestro código, la hoja "INFORME" se muestra en primer lugar y queremos colocarla detrás de la hoja "DATOS".

Para ordenar las hojas solo tenemos que escribir la siguiente línea de código:


ficheroExcel.Sheets("INFORME").Move(After:=ficheroExcel.Sheets("DATOS"))