Cuando el servicio de Windows que desarrollé en Server2003 llama al componente de Office para abrir Excel, no informa ningún error y no se puede abrir;
La descripción de la pregunta no es clara, por lo que me resulta difícil responderte con precisión.
¿Estás llamando a la aplicación Excel para abrir archivos *.xls o crear tablas de Excel?
¿O utilizar la hoja de cálculo de Excel como base de datos?
Pregunta 1:
De forma predeterminada, el proceso de servicio Win32 no se ejecuta en el escritorio del usuario (Windows tiene al menos más de un escritorio y la interfaz que vemos suele ser la del usuario). escritorio predeterminado). Por lo tanto, no podemos ver la interfaz del proceso del servicio Win32. Solución:
1) (No recomendado) En el Administrador de servicios de Windows, marque "Permitir que el servicio interactúe con el escritorio" (. ¿Iniciar? -gt;?Ejecutar?-gt;?Ingresar?services.msc?para abrir la administración de servicios).
2) Para resolver el problema a través de la programación (cambiando la estación de trabajo y el escritorio del proceso actual), necesita usar la interfaz API Win32, pasos:
1. para abrir? winsta0?Workstation
2. Utilice la función ?SetProcessWindowStation? para cambiar el proceso (proceso de servicio) a la estación de trabajo abierta por la función ?OpenWindowStation? la función ?OpenDesktop? para abrir el escritorio ?predeterminado? (el escritorio actual del usuario)
4. Utilice SetThreadDesktop para configurar el escritorio del hilo (el hilo principal de su servicio) en el escritorio abierto por OpenDesktop
Complete lo anterior 4. El paso 1 puede mostrar la ventana en el proceso de servicio. Las funciones anteriores son todas API de Win32 utilizadas en C# y deben declararse primero. Busque en Baidu para obtener más detalles.
Este es un ejemplo de referencia de VC:/document/viewdoc/?id=283
Si aún no lo entiendes, puedes enviarme un mensaje para pedir consejo.
Pregunta 2:
Puede utilizar ADO.NET o ADO para conectarse a hojas de cálculo de Excel. Busque en Internet la cadena de conexión.