ti-enxame.com

Podemos escrever uma macro em C # para Excel

Eu tenho que percorrer cerca de 25 folhas no Excel para fazer operações. Estou fazendo isso usando vba e achando muito lento, portanto, queria saber se eu poderia usar C # e se isso me ajudaria a acelerar o processo.

38
gizgok

Ligue para C # da pasta de trabalho do Excel como macro VBA - você não pode

Acesse a pasta de trabalho do Excel no aplicativo C # - você pode. Isso é chamado de Ferramentas do Microsoft Visual Studio para Office ( VSTO )

39
abatishchev

Embora você possa escrever um equivalente em C # na sua macro VBA atual usando o VSTO, duvido muito que isso faça alguma diferença significativa no desempenho.

Nos dois casos, você manipulará os mesmos objetos COM do Excel e o tempo de execução provavelmente será muito semelhante.

Seu desempenho dependerá principalmente das técnicas que você está usando para manipular os objetos do Excel. Como um exemplo simples, você pode atribuir valores de um intervalo do Excel a uma matriz bidimensional em uma única instrução: isso é muito mais rápido do que percorrer as linhas e colunas no código e copiar valores em sua matriz, um por um.

Eu recomendo que você publique bits do código VBA que achar muito lentos e peça dicas sobre como melhorar o desempenho.

10
Joe

Você pode tentar meu ESharper add-in para escrever um comando de automação do Excel em C #. É mais fácil do que criar um aplicativo C # separado ou um suplemento, e você terá acesso ao modelo de objeto do Excel e à API do C do Excel com mais opções para otimização de desempenho.

6
Sergey Vlasov