Alguém tem um bom exemplo de controlar várias instâncias do Excel a partir de um aplicativo .net?

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

  •  01-07-2019
  •  | 
  •  

Pergunta

Nós temos uma aplicação baseada 2002 / XP Excel que interage com SQL 2000/5 para processar cálculos atuariais bastante complexos. O aplicativo executa a sua função bem, mas é difícil de gerir.

Estamos tentando criar um aplicativo "controller" ou serviço que pode gerenciar e monitorar essas várias instâncias do Excel (start / stop / processo comandos etc), mas é um pouco de um pesadelo InterOp infelizmente.

Alguém tem um bom (ou seja, trabalho) exemplo de fazer algo assim em VB.Net ou C #?

Foi útil?

Solução

Não faça isso!

Nós tentamos durante semanas para obter algo parecido ao trabalho e ele simplesmente não se comportam como anunciado. Nem sequer começar - desistir imediatamente

As únicas opções que você realmente tem é uma implementação baseada em servidor-lado pesado MOSS - Excel serviços (Web) (que eles chamam de algo parecido). Janelas com base interoperabilidade COM Excel é praticamente morto e será substituído por MOSS.

A outra opção é usar SpreadsheetGear. É realmente um produto fantástico

  1. É lightlingly rápido
  2. O motor é separada da UI para que você possa usá-lo para fazer do lado do servidor material Excel (sem escritório instalado)
  3. Bastante barato
  4. Tem uma API semelhante ao api Excel COM existente para mover o código do outro lado é relativamente fácil

Tudo depende das fórmulas que você precisa em sua planilha. Ter um olhar para a lista fórmula para Spreadsheet engrenagem e se há um ir jogo para ele.

Outras dicas

Interop funciona bem, exceto que você sempre acabar com referências a objetos do Excel que não são liberados, assim instâncias do Excel não vai fechar. O seguinte artigo KB explica porquê:

http://support.microsoft.com/default. aspx / kb / 317109 / EN-US /

Você pode evitar o problema se você tiver muito cuidado código escrito para um conjunto limitado de cenários de interoperabilidade. Mas, no caso geral, é muito difícil fazê-lo funcionar de forma confiável.

Você pode querer dar uma olhada neste produto: http: // www. spreadsheetgear.com/products/spreadsheetgear.net.aspx

É todo o código gerenciado e bibliotecas diretos .NET. dores de cabeça não Interop. Eu não usei isso mesmo, mas eu ouvi coisas muito boas de pessoas no mundo das finanças.

Nós escrevemos um serviço que controla uma única instância do Excel 2003. Nós nunca conseguiu obter instâncias do Excel para perto limpa, então começamos um exemplo, quando o serviço é acessado pela primeira vez e usar só isso, a serialização de solicitações do cliente.

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