none
problema al abrir Excel con Visual Studio 2010 C#

    Question

  • Hola 

    He desarrollado un servicio en el que necesito abrir un Excel para introducir valores y despues mandarlo por correo. El problema es que no me encuentra el fichero. Le doy la ruta absoluta y escapada(@C:\mifichero.xlsx) . El metodo Open(ruta,Type.Missing.......). Con el visual Studio 2008 me lo hace bien pero ha sido migrar a 2010 y me da problemas.

    Muchas gracias a todos. 

     

    Un saludo 

    Antonio R. 

     

    Monday, May 17, 2010 12:17 PM

Answers

  • Hola Juan Carlos , todo lo que me dices ya lo he probado y nada. Mi opcion ha sido volver de nuevo a Visual Studio 2008 ( me corre prisa el servicio). Es un servidor de pruebas por lo que el UAC puede estar deshabilitado. Además no me dejaba depurar el servicio, no tenía una lógica la depuración (pegaba saltos en el codigo).

     

    Gracias

    • Marked as answer by amrurbano Thursday, May 20, 2010 9:24 AM
    Thursday, May 20, 2010 9:24 AM

All replies

  • hola

    cuando dices " me da problemas", imagino sera porque obtienes algun mensaje de error, si es asi podrias postear cual es ese mensaje ?

    seguro ayuda a ver cual es el problema

    el proyecto que abres en VS2010 es el mismo que el usado en el VS2008, solo que se convirtio por el VS, o son dos proyectos completametne distintos

    que version de Office estas usando para desarrollar?

    este problema te da al ejecutar desde el propio VS, o cuando haces el deploy de la desarrollado en otra pc?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Monday, May 17, 2010 12:27 PM
  • Hola Leandro , primero muchas gracias por contestar.

     

    El error que me reporta es que no puede tener acceso al archivo.

     

    Te agrego el error :

    System.Runtime.InteropServices.COMException was caught

      HelpLink=C:\Program Files (x86)\Microsoft Office\Office12\3082\XLMAIN11.CHM

      Message=No se puede obtener acceso al archivo 'C:\Prueba.xlsx'. Puede haber varios motivos:

     

    • El nombre del archivo o la ruta no existen.

    • Otro programa está usando el archivo.

    • El libro que está intentando guardar tiene el mismo nombre que otro libro que está abierto en estos momentos.

      Source=Microsoft Office Excel

      ErrorCode=-2146827284

      StackTrace:

           at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)

           at ADMoveUsers.Clases.ExcelManager..ctor(String path) in C:\Users\aurbano\Desktop\ADMoveUsers\ADMoveUsers\Clases\ExcelManager.cs:line 47

     

    La version del Office es 2007 , le he instalado la PrimaryInteropAssembly para Office 2007 y nada. 

    No ha sido convertido por el Visual Studio , sino que lo he desarrollado desde el principio.

    El problema me da al hacer debuug del servicio (atach proceess). 

     

    Muchas gracias Leandro

     

     

     

     

    Monday, May 17, 2010 12:59 PM
  • hola

    el archivo imagino esta correctamente en la ruta C:\Prueba.xlsx ?

    la version de windows que usas peude ser que sea Win7 o Vista ?
    si es asi prueba desabilitando el UAC, para ver si este no afecta el acceso

    Disabling User Account Control (UAC) in Windows 7

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Monday, May 17, 2010 1:07 PM
  • Es un servidor Win 2008, el fichero esta correctamente en la ruta , he probado a ponerlo en otra ruta y más de lo mismo, también he probado a ponerle full control al usuario en la Security del fichero  y tampoco. Pero lo del control de cuentas de usuario no había caído , lo pruebo y te cuento. 

    Monday, May 17, 2010 1:12 PM
  • Hola Leandro , está deshabilitado el UAC. 

    Por lo que no se que puede estar pasando. Lo más raro es que en una aplicación pesada funciona a la perfección, me ocurrió en mi máquina un Windows 7.

     

     

    Monday, May 17, 2010 1:16 PM
  • Hola. 

    Si ejecuto F10 pero no asocio ningún proceso , me encuentra el archivo correctamente. Por lo que entiendo que es un problema del servicio no? 

     

    Monday, May 17, 2010 1:45 PM
  • si me imagine por el tipo de problema que se habia generado bajo Win7
    no es un tema de tu codigo sino de como Win7 y la seguridad restrictiva que este tiene

    algo que no pregunte es si la aplciacion es web o winforms ? imagine que es winform pero seria bueno confirmarlo

    se que hay un concepto a tener cun cuanta cuando se desarrolla en Win7 y es que este debe tener un manifest con la seguridad a los archivos


    Step 6: Create and Embed an Application Manifest (UAC)


    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Monday, May 17, 2010 2:25 PM
  • Es un servicio de windows, que necesito hacer debug antes de poner en producción. 

     

    Monday, May 17, 2010 2:28 PM

  • ahh ok esta es nueva info que aportas se trata de un servicio de windows

    valida que en la config del servicio tienes configurado un usuario que tenga acces, prueba usando un usuario admin local, al menos para probar

    imagen

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Monday, May 17, 2010 2:42 PM
  • Si el usuario del servicio es un domain\admin , en el cual le he dado full control en la Security del fichero excel. He probado a ponerlo como Local System y tampoco...

    Monday, May 17, 2010 3:10 PM
  • El tema es de seguridad, al respecto estas observaciones

     

    **Nunca deshabilites UAC, salvo para hacer pruebas. Muchisismo menos si estas en un servidor.

    **Nunca escribas en C:\

    **Crea una carpeta aparte para almacenar los archivos

    **asegurate que la carpeta le da permisos al usuario con el que se ejecuta tu servicio, esto es fundamental

    **uno de los más importantes: prueba colocando el servicio con la opción de interactuar con el escritorio..

     

    Me cuentas... saludos...


    Juan Carlos Ruiz
    Microsoft MVP - Visual C#
    Visita mi blog:

    Ideas de Un Conejo - http://juank.black-byte.com

    Wednesday, May 19, 2010 3:11 PM
  • Hola Juan Carlos , todo lo que me dices ya lo he probado y nada. Mi opcion ha sido volver de nuevo a Visual Studio 2008 ( me corre prisa el servicio). Es un servidor de pruebas por lo que el UAC puede estar deshabilitado. Además no me dejaba depurar el servicio, no tenía una lógica la depuración (pegaba saltos en el codigo).

     

    Gracias

    • Marked as answer by amrurbano Thursday, May 20, 2010 9:24 AM
    Thursday, May 20, 2010 9:24 AM
  • Hola , os comento como se soluciona el problema, por lo visto es un problemas con el Office 2007 y el Windows server 2008 o Windows7. La solucion pasa por crear una carpeta llamada Desktop en C:\Windows\SysWOW64\config\systemprofile. Por lo visto no tienes suficientes privilegios para abrir el excel siempre el propietario del excel es el Administrador.Me he peleado con esto bastante tiempo.

     

    Un saludo

    Antonio Ruiz

    • Proposed as answer by Jose Somarriba Tuesday, March 15, 2011 4:07 PM
    Friday, May 21, 2010 7:35 AM
  • Amigos. Esto me funciono. para VS 2005 tambien.

    Ahora el problema que tengo es con otra aplicacion WEB: la cual don acceso a que suban archivos al serividor.

    Una compañera puede hacerlo y un compañero cuando lo carga le da error. 404 Archivo o directorio no encontrado.

    A mi compañero si permite cargar a mi compañero no!!!.


    Soma
    Tuesday, March 15, 2011 3:59 PM
  • ¿Solo con crear una carpeta en esta ruta se soluciona el problema?? habrá que hacer algo más me imagino no? puedes explicarmelo mejor es que tengo este mismo problema que comentas.

    Tengo un fichero que crea un fichero excel para enviarlo por email pero en un servicio en Local System en un windows server 2008 r2, la cosa que no hay manera que funcione el servicio, sin embargo si hago la aplicación en modo normal (no servicio sino aplicacion de escritorio) la ejecuto y funciona correctamente.

     

     

    Un saludo.

    • Proposed as answer by Ruben3s Monday, April 16, 2012 3:19 PM
    • Unproposed as answer by Ruben3s Monday, April 16, 2012 3:19 PM
    Thursday, October 20, 2011 4:24 PM
  • Hola la solución es la siguiente:

    La encontre buscando por ahí en foros en Ingles...

    To resolve this issue follow these steps
    1. Login to the server as a administrator. 
    2. Go to "Start" -> "Run" and enter "taskmgr" 
    3. Go to the process tab in task manager and check "Show Processes from all users" 
    4. If there are any "Excel.exe" entries on the list, right click on the entry and select "End Process" 
    5. Close task manager. 
    6. Go to "Start" -> "Run" and enter "services.msc" 
    7. Stop the service automating Excel if it is running. 
    8. Go to "Start" -> "Run" and enter "dcomcnfg" 
    9. This will bring up the component services window, expand out "Console Root" -> "Computers" -> "DCOM Config" 
    10. Find "Microsoft Excel Application" in the list of components. 
    11. Right click on the entry and select "Properties" 
    12. Go to the "Identity" tab on the properties dialog. 
    13. Select "The interactive user." 
    14. Click the "OK" button. 
    15. Switch to the services console 
    16. Start the service automating Excel
    17. Test you application again.

    Saludos Ruben.

    • Proposed as answer by Ruben3s Monday, April 16, 2012 3:21 PM
    Monday, April 16, 2012 3:21 PM