Office con C#

13/12/2004 - 10:13 por Miguel Tubia | Informe spam
Hola a todos,
necesito una ayudita con un problema que tengo en un proyecto bajo C#.
Una parte del proyecto es un gestor de documentación (algo básico, pero
bueno), en el parte de la documentación de la empresa se guardará en el
servidor (bien seguro con permisos y eso y a la que solo tendrá acceso el
proceso con el que corre el servicio de windows que hace de servidor del
sistema - está hecho con remoting - o esa es la idea).
Para guardar los ficheros, lo busca, lo elige y, tras leerlo se pasan los
datos como arrays de bytes al servidor y luego se pasan a disco. Eso va
bien, el problema que se plantea ahora es el paso inverso. La idea era que,
cuando lo quiera visualizar, guardarlo en el dir. temporal del usuario y
abrir el programa con el que se visualizará. Pero la mayoría está con Word y
Excel, y los usuarios lo querrán modificar. Y si lo abren, lo modifican y lo
guardan, ellos pensarán que están guardando el doc. de evrdad cuando en
realidad guarda el temporal y el de verdad ni se entera. Lo que estamos
planteando es, si se puede, que no sabemos, "incrustar" el word y el excel
en la aplicación y poder controlar cuando guarda el documento. O abrir
nosotros el word y poder controlarlo.
Hemos mirando y solo hemos visto la segunda opción, con Office XP (es el que
tenemos) y las Office XP Primary Interop Assemblies. Ahora estamos mirando
como usarlas, pero en teoría abrimos un documento pero no sabemos como hacer
que realmente se "abra" el Word para que el usuario pueda interactuar con
él, y así poder controlar cuando guarda el doc, etc... ¿Alguien nos puede
echar una mano con esto?
¿Alguien sabe si se puede incrustar un doc o un xls como un objeto más en un
formulario? ¿Alguna idea?
Muchas gracias por todo
Un saludo
 

Leer las respuestas

#1 Braulio Diez
13/12/2004 - 12:03 | Informe spam
Hola !

Para controlar esto puedes usar "Automation", como tu dices es "incrustar"
word o excel en tu aplicación, hay dos tipos de automation una es "Embedded",
es decir que word o excel corren en su propia ventana, pero tu lo controlas,
y la otra es "inplace" en el que tu le das el espacio de ventana en tu
aplicación.

Esto de Automation, tiene sus ventajas y desventajas, la principal ventaja
es que tienes a Word/Excel todo bajo tu control (lo arrancas como un servidor
COM exe). Lo malo que tiene esto, es que es lentillo, y un poco inestable,
aunque si tu sistema va a correr como aplicacion de windows normal, puede
funcionarte bastante bien.

Aqui te va un link:

http://weblogs.asp.net/sbehera/arch...43034.aspx

Buena suerte,
Braulio

"Miguel Tubia" wrote:

Hola a todos,
necesito una ayudita con un problema que tengo en un proyecto bajo C#.
Una parte del proyecto es un gestor de documentación (algo básico, pero
bueno), en el parte de la documentación de la empresa se guardará en el
servidor (bien seguro con permisos y eso y a la que solo tendrá acceso el
proceso con el que corre el servicio de windows que hace de servidor del
sistema - está hecho con remoting - o esa es la idea).
Para guardar los ficheros, lo busca, lo elige y, tras leerlo se pasan los
datos como arrays de bytes al servidor y luego se pasan a disco. Eso va
bien, el problema que se plantea ahora es el paso inverso. La idea era que,
cuando lo quiera visualizar, guardarlo en el dir. temporal del usuario y
abrir el programa con el que se visualizará. Pero la mayoría está con Word y
Excel, y los usuarios lo querrán modificar. Y si lo abren, lo modifican y lo
guardan, ellos pensarán que están guardando el doc. de evrdad cuando en
realidad guarda el temporal y el de verdad ni se entera. Lo que estamos
planteando es, si se puede, que no sabemos, "incrustar" el word y el excel
en la aplicación y poder controlar cuando guarda el documento. O abrir
nosotros el word y poder controlarlo.
Hemos mirando y solo hemos visto la segunda opción, con Office XP (es el que
tenemos) y las Office XP Primary Interop Assemblies. Ahora estamos mirando
como usarlas, pero en teoría abrimos un documento pero no sabemos como hacer
que realmente se "abra" el Word para que el usuario pueda interactuar con
él, y así poder controlar cuando guarda el doc, etc... ¿Alguien nos puede
echar una mano con esto?
¿Alguien sabe si se puede incrustar un doc o un xls como un objeto más en un
formulario? ¿Alguna idea?
Muchas gracias por todo
Un saludo



Preguntas similares