NET: Se meu .NET automatiza o Office, que o cliente tem de ter o Office instalado?

StackOverflow https://stackoverflow.com/questions/403118

  •  03-07-2019
  •  | 
  •  

Pergunta

Se eu criar um programa, que em um pequeno fora da área de forma, utiliza a automatização Excel:

O aplicativo falhar quando Excel é necessário

ou será que o aplicativo falhar ao iniciar?


Atualização

Deixe-me fazer a mesma pergunta, mas de uma forma mais prolongado:

O aplicativo será usado por

  • 99,9% dos usuários que nunca usar o recurso que requer Excel

  • 0% dos usuários, uma vez que Excel não está instalado.

Deixe-me fazer a mesma pergunta de outra maneira:

Será uma aplicação falhar ao inicializar que referencia a interoperabilidade de dll?


Deixe-me fazer a mesma pergunta de outra maneira:

Será um aplicativo que não usa o Excel, mas referências a interoperabilidade DLL falhar ao iniciar?


Deixe-me fazer a mesma pergunta de outra maneira:

Será um aplicativo que não usa Excel ser utilizável se o Excel não estiver instalado, se esse aplicativo tem uma dependência sobre as DLLs Escritório primário Interop?


Deixe-me fazer a mesma pergunta de outra maneira:

Se o meu aplicativo não usar Excel, faz o usuário tem que ter Excel instalado?

Foi útil?

Solução

O código será executado corretamente até que ele tenta fazer uma chamada para as bibliotecas de automação, naquele tempo ele irá gerar uma exceção.

Outras dicas

Eu tenho um aplicativo que usa a automação Excel e eu posso definitivamente dizer que ele irá falhar em tempo de execução, não no tempo de carregamento. Na verdade, verificar para ver se ele está mesmo instalado e só mostram o "Mostrar dados em Excel" botão, se encontrá-lo (mas os PIAs são implantados em todas as instalações).

Se você automatizar o Office ... você tem que ter o Office!

Dito isto, a resposta muda se você torcer a questão em:? Posso criar uma planilha do Excel sem ter Excel no cliente

Há muitos controles de terceiros para fazer isso; você pode escrever diretamente com a especificação MS SpreadML XML ( http: //msdn.microsoft.com/en-us/library/aa140066(office.10).aspx , ou usar bibliotecas de terceiros que fazem (como http://www.carlosag.net/Tools/ExcelXmlWriter/ ).

Eu acho que ele irá falhar em tempo de execução, pois os módulos de interoperabilidade deve ser capaz de carregar sem a COM-Components disponível no sistema de clientes.

UPDATE:! Runtime deve significar quando você precisar dele

Usando COM no Win32, ele irá falhar quando necessário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top