Privacidade & Cookies
Este site utiliza cookies. Continuando, você concorda com o uso deles. Saiba mais, incluindo como controlar cookies.Consegui!
tenho passado tempo nos últimos meses experimentando com a nova API JavaScript Excel.
esta é a primeira de uma série planejada de posts examinando a JS-API do ponto de vista de um desenvolvedor de escritório do Excel.
a principal vantagem da API JS é que ela permite que você escreva código que funciona Para Windows Excel, Mac Excel, Excel Online e Excel em IOS. A API JS ainda é imatura, mas está passando por um rápido desenvolvimento pela equipe de extensibilidade do Microsoft Office, com novos lançamentos da API chegando aproximadamente trimestralmente.
a API JS utiliza tecnologias JavaScript/TypeScript baseadas em navegador e HTML e CSS. Os seus principais objectivos são::
- para trabalhar em uma grande variedade de Pontos finais (móveis, tablet, nuvem, desktop).
- para atingir os desenvolvedores de hoje que trabalham principalmente ou exclusivamente usando tecnologias web .
a API executa assíncronamente, colocando em fila as interações da API com o Excel até que você as solicite para serem executadas em um lote (contexto.SINCRONIZACAO()).JavaScript & TypeScript
para os desenvolvedores de VBA ou C JavaScript é uma linguagem estranha, exasperante mas surpreendentemente poderosa. Para mencionar algumas diferenças:
- variáveis não têm realmente tipos e são sensíveis à capitalização. O escopo das variáveis (chamado escopo Lexical) é seriamente estranho e parece muitas vezes capturar até mesmo desenvolvedores experientes JavaScript.
- Arrays não são realmente arrays e só têm uma dimensão, então você rapidamente aprende sobre arrays. Eles não têm limites superiores fixos e podem ser esparsos. Eles têm métodos poderosos como mapa, reduzir, cortar e ordenar. (Mas é realmente difícil fazer js array funcionar da mesma forma que um Excel sort!)
- funções são cidadãos de primeira classe – você pode passá – las ao redor como variáveis – funções anônimas/Lambda são totalmente suportadas-você realmente precisa começar sua cabeça em torno disso!
- processamento Assíncrono é tratado por coisas chamadas Promessas que podem ser combinadas com alguma dificuldade (esta situação é conhecida como a Pirâmide de Doom)
- JavaScript como uma linguagem ainda está mudando muito rapidamente e tem características que podem ou não ser suportado pelo particular navegadores
- essa popularidade é, em parte, construídas e alimentadas por muitos muito poderoso e livremente disponível e frameworks (JQuery, AngularJS, …)
E pelo jeito o JavaScript não é uma linguagem de script versão do Java: é um idioma completamente diferente.
TypeScript é uma tentativa da Microsoft para corrigir algumas das falhas de JavaScript mais flagrantes.
TypeScript is basically a Transpiler-it compiles TypeScript into JavaScript so that just about anything that can execute JavaScript can also execute transpiled TypeScript.
duas das principais vantagens do TypeScript são::
- você pode atribuir tipos a variáveis e elas têm escopo sensível!
- você pode usar Async aguardar em vez de promessas que torna o seu código muito mais legível e evita a Pirâmide da desgraça.
Excel API Tecnologias Comparado
Existem 4 principais famílias de Excel APIs:
‘C’ XLL API
Esta API é o mais bem integrado e menor publicamente disponíveis interface para o Excel:
- Melhor desempenho API
- interface de Baixo nível, requer programação C memória e habilidades de gestão.
- Visual Studio IDE
- funciona no processo Excel.
- Mais capacidade para UDFs (multi-threaded, assíncrona, RTD, Cluster, etc.)
- Só cobre um subconjunto do Modelo de Objeto do Excel
- Limitado INTERFACE nativa de suporte
- Usado como uma camada de fundação por muitos outros produtos/plataformas/linguagens (XLL Plus C++, Excel DNA .NET, Suplemento Express .NET, PyXLL Python, FCell F# …)
- área de Trabalho do Windows apenas
- Aplicação de suplemento apenas em nível de
- Pode usar todos os C e C++ estruturas (Standard Template Library, IMPULSIONAR o …)
COM Excel e a API de Automação
Esta API é o mais rico e o mais amplamente utilizado API
- línguas Primárias VBA e VB6
- Bom desempenho
- mais Amplo suporte de modelo de objeto
- Suporte single-threaded síncrona UDFs
- é Executado no Processo do Excel
- Windows
- Mac OS Desktops/Notebooks (mas o VBA só com alguns diferenças em relação ao Windows VBA)
- Macro recorder fornece um ponto de entrada baixo
- Ide embutido mas antigo para o Windows VBA
- pode ser incorporado num documento ou usado como um addin ao nível da aplicação.
- VBA praticamente inalterada por muitos anos e tem apenas um limitado e morrendo framework
Interoperabilidade API
Esta API adiciona um adicional .NET camada de interoperabilidade no topo da COM/de Automação de interface. Idealmente, este teria sido um útil stopgap até que uma interface adequada.net Excel foi desenvolvido, mas infelizmente isso nunca aconteceu.
- desempenho Ruim
- é Executado em processo separado
- Suporta .NET framework e idiomas
- Windows só
- Visual Studio IDE
- Principalmente a nível de aplicação, mas pode ser vinculado a um documento usando o VSTO
- Não é adequado para UDFs
- Microsoft está oferecendo é o VSTO
Produtos como o Excel DNA e do Suplemento de Expressar apoio tanto a Interoperabilidade .Rede mundial e o ‘C’ API para permitir adequado suporte UDF, melhor desempenho, mantendo a riqueza .NET framework.
Excel JS-API Release 1.4
the new kid on the block! Esta é a API que está atualmente sendo desenvolvida ativamente pela Microsoft, por isso é um alvo em movimento. Os comentários abaixo refletem a versão 1.4 da API em fevereiro de 2017.
- o seu código corre inalterado através de múltiplos objectivos.
- Mas isso pode resultar em menor denominador comum de apoio
- Suporta muitos frameworks de JavaScript
- Funciona melhor com TypeScript
- Bom Web oferece Suporte a
- Escritório de suporte de arquivo de
- é Executado em um navegador separado do processo
- Requer o Internet: sem capacidade offline
- Não há suporte para UDF actualmente
- desempenho Muito ruim
- Direcionado a profissionais desenvolvedores web
- suporte de modelo de Objeto
- Limitado, mas em rápida expansão
- pasta de trabalho Único apenas: não é possível copiar entre, abrir, fechar ou salvar pastas de trabalho
- controle Limitado de Cálculo e Actualização do Ecrã
- Não Copiar Colar Especial
- a Nuvem Híbrida/Application/Livro Nível
- em Lote o processamento Assíncrono apenas
Qual o Próximo passo?
minhas próximas postagens no blog js se focarão no desempenho da JS-API.
se quiser aprender mais sobre a JS-API, recomendo a construção de Admins de escritório por Michael Zlatkovsky, que é um desenvolvedor da equipe de extensibilidade do Microsoft Office.