Array
(
)

Problema com Microsoft.Office.Interop.Excel

Rodrigo Caraça
   - 25 jul 2012

Eu tenho um website usando (ou tentando usar) Microsoft.Office.Interop.Excel.
Na minha máquina de desenvolvedor (Windows 7 Professional SP1 32 bits com Visual Studio 2010 e Office 2003) tudo funciona perfeitamente.
Eu só publiquei o website e copiei todo o conteúdo para o servidor, Windows Server 2008 SP2 64 bits.
Eu recebi o erro:
Could not load file or assembly S3A.Importacoes or one of its dependencies. An attempt was made to load a program with an incorrect format.
Então eu tentei:
- instalar office 2003 e PIA (Primary Interop Assemblies)
- instalar office 2007 e PIA
- instalar office 2010 e PIA
- copiar DLLs (Microsoft.Office.Interop.Excel.dll / Microsoft.Vbe.Interop.dll / office.dll) da pasta website/bin para system32 e registrá-las.
Nada funcionou.
O que eu devo fazer para resolver este problema?
Obrigado.
Rodrigo Zanferrari Caraça

Renato_groffe
|
MVP
    26 jul 2012

Rodrigo,

Tive alguns problemas num servidor 64 bits recentemente.

Usei as instruções dos links a seguir:

http://social.msdn.microsoft.com/Forums/pl-PL/vbgeneral/thread/4d6c383a-94eb-4898-9d22-aa4bb69be25b
http://stackoverflow.com/questions/4408336/system-runtime-interopservices-comexception-0x800a03ec

Aparentemente, as dlls de Interop precisam que existam 2 pastas dentro do diretório do Windows, sendo que as mesmas não existem em servidores com versões mais recentes do Windows. Além disso, você precisará conceder acesso total às mesmas. Não soa como a melhor alternativa, mas foi a única referência que encontrei, sendo citada em diversos sites da Internet.

Após seguir as orientações mencionadas, o problema foi solucionado aqui.

Espero que isso ajude a você.

Até mais!

Dardanisistemas
   - 28 out 2013

Amigo, tente o seguinte.

No IIS selecione o site vá em "configurações básicas", clique no botão "Conectar como..." - > Marque a opção Usuário Especifico e coloque um login e senha do seu usuario, ou de um usuario que tenha todas as permissões sobre o sistema operacional.

Tentei modificar as permissões no serviço do Excel, nas pastas do projeto e mesmo assim continuava com problemas, essa alternativa que eu citei é mais pratica do que ficar liberando acesso dos serviços e pastas que o sistema irá utilizar, uma vez que o ISS irá utilizar seu Usuário para se autenticar.
Abraços

Paulo
   - 09 nov 2013

Tive problemas com interop tb, a melhor solução que encontrei foi usar outra API, o EPPlus pra gerar excel (q não depende de office instalado e outras dependências no servidor).
http://epplus.codeplex.com/

Dvm.lc.ledcrash
   - 12 nov 2013

Gente, o Interop só vai funcionar se você tiver o OFFICE instalado no servidor. Até parece que a tiasoft vai dar o Office assim, de graça pra gente ...

o único jeito de resolver é ou instalar o office no servidor, não recomendo, ou usar uma biblioteca a parte que faça o papel do excel, como, por exemplo, NPOI (http://npoi.codeplex.com/).

Já usei exaustivamente o POI para projetos em JAVA e o NPOI é a biblioteca portada para .NET.

Funciona perfeitamente para ler e escrever qualquer arquivo do Office sem perder formatação. É rápido e simples de usar.