Microsoft deve levar Python ao Excel
(theverge.com)- A Microsoft começou a oferecer em prévia pública um recurso integrado para análise e visualização de dados com Python dentro do Excel
- Sem instalação separada, é possível acessar o Python pela faixa de opções do Excel e refinar os resultados junto com fórmulas, gráficos e Tabelas Dinâmicas existentes
- A nova função PY expõe dados do Python na grade da planilha, e, em parceria com a Anaconda, permite usar pandas, statsmodels, Matplotlib e outros no Excel
- O processamento é executado não localmente, mas na Microsoft Cloud, e depois retorna para a planilha; também é possível criar visualizações com base em Matplotlib e Seaborn
- A prévia pública começa no Beta Channel do Microsoft 365 Insiders para Windows, e, após o fim da prévia, alguns recursos serão limitados sem licença paga
Análise com Python chega ao Excel
- A Microsoft adicionou ao Excel um recurso de integração com Python, permitindo manipular e analisar dados dentro da planilha
- Os usuários podem acessar o Python diretamente pela faixa de opções do Excel, dando continuidade a tarefas avançadas de análise sem sair do ambiente já familiar do Excel
- Gráficos criados com Python e resultados de bibliotecas podem ser combinados com fórmulas, gráficos e Tabelas Dinâmicas do Excel para refinamento adicional
Modo integrado sem instalação separada
- A integração com Python é fornecida como parte do conector integrado do Excel e do Power Query
- O acesso é possível sem instalar software adicional nem configurar complementos separados
- A nova função PY expõe dados do Python dentro da grade da planilha do Excel
Bibliotecas da Anaconda e visualização
- A Microsoft firmou parceria com a Anaconda, repositório corporativo de Python, para permitir o uso das principais bibliotecas Python no Excel
- As bibliotecas disponíveis incluem:
- pandas
- statsmodels
- Matplotlib
- Usuários do Excel podem criar fórmulas, Tabelas Dinâmicas e gráficos com base em dados do Python
- Com bibliotecas de gráficos como Matplotlib e Seaborn, é possível gerar as seguintes visualizações:
- heatmap
- violin plot
- swarm plot
O processamento ocorre na Microsoft Cloud
- O código Python é escrito e usado dentro da planilha do Excel, mas o processamento não acontece no Excel local, e sim na Microsoft Cloud
- Os resultados da execução são então retornados para a planilha do Excel
Escopo de disponibilidade e condições de licença
- A prévia pública do Python no Excel está disponível no Beta Channel do Microsoft 365 Insiders
- A disponibilidade inicial é limitada ao Windows
- A Microsoft pretende expandir depois para outras plataformas
- Durante o período de prévia, o recurso está incluído na assinatura do Microsoft 365
- Após o fim da prévia, alguns recursos serão limitados sem uma licença paga
1 comentários
Opiniões no Hacker News
Como alguém que já trabalhou como desenvolvedor do Excel e tentou, sem sucesso, colocar Python no Excel, a notícia de hoje é uma surpresa bem-vinda
Cerca de 7 anos atrás, tive a oportunidade de sair da equipe do Excel, mas o chefe do meu chefe na época soube que eu queria colocar Python no Excel e disse que, se eu ficasse, me encarregaria desse trabalho. O que eu achava que seria algo de 6 meses virou um projeto de cerca de 3 anos e, com o lado do Python ficando nebuloso, acabou sendo lançado na direção de colocar funções personalizadas em JavaScript no Excel
O Python também rodava “na nuvem”, com base no AzureML v1, mas houve discussões sobre executá-lo localmente ou não. A equipe parceira do AzureML passou por reorganização, relançamento, recontratação e saída de PMs; enquanto isso, outra equipe parceira percebeu que poderia usar nosso código para executar JavaScript em um processo externo, então acabamos gastando muito tempo lançando esse recurso em vez do Python
O trabalho central era mudar o mecanismo de cálculo do Excel para permitir que funções fizessem cálculos assíncronos, de modo que o usuário pudesse continuar trabalhando em outras partes da planilha enquanto um endpoint remoto — fosse JavaScript, Python ou qualquer outra coisa — calculava. Antes, a planilha ficava bloqueada durante o cálculo, o que não era bom para cálculos demorados e sem fim claro. Fico curioso para saber se parte do que construímos entrou neste recurso
“Recalc or die”
O problema do Office.js é que, para o usuário médio do Excel, começar é difícil demais por causa do monte de dependências npm, e até desenvolvedores profissionais sofrem bastante. Fico satisfeito por termos feito com que o usuário não precise usar Node.js: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
Agora é um projeto abandonado: https://alphawolfxl.com/
Algumas pessoas a quem pedi para fazer beta test disseram que “a empresa não pagaria por isso”, então tive a impressão de que havia perdido tempo e encerrei o projeto; vendo isso agora, fico com sentimentos mistos
No geral, falta código realmente funcional para ver como o JavaScript opera no Excel, e hoje parece quase no nível de “como desenhar uma coruja”
Eu gostaria que também houvesse suporte a execução local de Python, não apenas via Microsoft Cloud, mas ainda assim esse único recurso parece capaz de modernizar bastante o Excel
Talvez até elimine a demanda por sites que tentam mostrar esse tipo de dado. Em um emprego anterior, criei um site interno de análises usado só por algumas pessoas, e acho que, se esse recurso existisse na época, ele poderia ter sido substituído tranquilamente por isso
Continuo explicando que bastaria criar um data mart no SQL Server e preenchê-lo com os dados necessários para análise usando ferramentas de ETL. É só não dar acesso aos dados de origem. Mesmo assim, todo mundo me olha estranho e quer fazer, em vez disso, um projeto de implantação do Tableau de milhões de dólares. Os usuários não querem isso; é realmente absurdo
Ou então envie pela UI de feedback do Excel Web/Desktop. Os PMs leem todo esse feedback
Podemos garantir uma experiência consistente para todos os usuários. Imaginar cada pessoa mantendo sua própria distribuição local de Python e garantindo que ela funcione com o Excel, enquanto as versões vão divergindo ao longo do tempo, é horrível
Quando uma pasta de trabalho do Excel é compartilhada com outro usuário, os cálculos podem simplesmente funcionar. Se depender de instalações locais de Python diferentes entre si, isso não acontece, e os usuários ficariam extremamente frustrados
Segurança também pesa muito. Basta imaginar abrir um arquivo do Excel capaz de executar código Python com os privilégios do usuário local
Concordo totalmente também com o segundo ponto. Criar apps internos em Python que se integrem à infraestrutura de TI existente é, na melhor das hipóteses, frustrante. O Excel já faz parte da infraestrutura de TI em praticamente todos os lugares e é uma tela responsiva programável
Divulgação: trabalho na equipe de design deste recurso
Aqui, macros são vistas como uma rota para executar malware nas máquinas clientes, e a utilidade não é considerada grande o suficiente para assumir esse risco
Há claramente um sinal de alerta aqui. A força essencial do Excel vem do fato de que uma pasta de trabalho pode existir de forma independente, mas agora o processo fica preso à nuvem para sempre
Daqui a 3 anos, quando você precisar abrir a pasta de trabalho de um colega falecido, vai depender de o fornecedor continuar oferecendo suporte a essa integração
É horrível quando o primeiro passo de qualquer trabalho vira “descobrir como fazer o software voltar a funcionar”. Passei por isso várias vezes nas últimas décadas por causa de vários suplementos do Excel, Outlook e Word, e esses suplementos nem faziam o processamento remotamente
Por isso é importante, de vez em quando, realmente restaurar backups ou, nesses casos, validar arquivos importantes
Fiquei empolgado com “Python no Excel”, mas desanimei ao ver a frase “executa na nuvem”. Não parece haver motivo para isso além de prender você a um serviço de nuvem. A sensação é muito parecida com a de me protegerem de tinta de impressora insegura
Em geral gosto dos produtos do MS Office e tendo a dar o benefício da dúvida. Se houver algum bom motivo plausível, que não seja lock-in, para exigir que Python rode na nuvem, gostaria de saber
Acho que já passou uns 5 anos do momento em que deveríamos ter nos livrado da M$. De Windows a Office, todos os produtos já têm recursos anticonsumidor
Claro, entendo também que usuários avançados de Excel+Python provavelmente estão acostumados a trazer e manter seu próprio runtime Python
Também há pessoas que usam Excel em dispositivos iOS e Android. Com esse método, elas também podem usar e ler Python dentro das planilhas
Em 2005, criei com amigos uma empresa chamada Resolver Systems para fazer o Resolver One, uma planilha com suporte a Python
Infelizmente, não decolou no mercado, então mudamos de rumo e criamos o PythonAnywhere, um ambiente online de programação e hospedagem; esse deu bastante certo e foi adquirido pela Anaconda no ano passado. E agora o círculo se fechou
Para deixar claro, a equipe que está criando esse recurso dentro da Anaconda é completamente separada da equipe do PythonAnywhere. Se fossem as mesmas pessoas, daria uma ótima história à moda de Hollywood
O problema é que o Resolver era baseado em IronPython, então havia várias bibliotecas que não funcionavam direito
Eu gostava muito de poder fazer pequenas correções diretamente no webapp do PythonAnywhere, e quando comecei a usar GCP/AWS senti muita falta desse recurso
Ao ver a frase “Os cálculos em Python são executados na Microsoft Cloud”, um colega brincou: “Parece que nem a Microsoft consegue gerenciar uma instalação local de Python no Windows…”
Mas é divertido imaginar a Microsoft finalmente resolvendo de verdade o problema de configuração de ambientes Python locais, e o Excel se tornando o gerenciador de pacotes Python padrão de todo o sistema operacional
$ excelpip install fastapi==9.11.23procurando fastapi version 11.09.2023…Achei que eles mergulhariam fundo nesse espaço de problema e reinventariam um gerenciador de pacotes que fosse além do que surgiu no mundo open source
Em vez disso, hoje temos Windows Update, Windows Features, Microsoft Store, Software Center e winget. O winget é um gerenciador de pacotes para Windows feito pela Microsoft, que precisa ser instalado por meio de outro gerenciador de pacotes para Windows feito pela Microsoft
$GOV_AGENCYusando uma versão do Excel uma geração defasada vai colaborar com o resto do mundo?O LibreOffice já deveria ter percebido o clima há muito tempo. Em princípio, é possível fazer scripting em Python, mas é excessivamente trabalhoso e confuso, e não parece haver um roadmap de melhorias
O mesmo alerta se aplica ao desktop Linux e aos apps em geral. Cada vez mais plataformas proprietárias vão incluir extensões de recursos avançados de “IA” em apps existentes, baseadas na nuvem e muitas vezes por meio de APIs Python
É uma pena que várias correntes do mundo open source estejam tão siloizadas. Um potencial maior que a soma das partes está sendo desperdiçado
Minha maior reclamação com planilhas do LibreOffice e com o Apple Numbers é como eles lidam com copiar/colar seleções não contíguas
Por exemplo, em dados de 5 linhas por 3 colunas, se você selecionar e copiar as linhas
1 2 3,7 8 9,a b ce depois colar abaixo ded e f, o Excel cola apenas as linhas selecionadas em sequência. O LibreOffice e o Numbers preservam também as linhas vazias intermediáriasNão encontrei uma configuração para mudar esse comportamento. O Excel também pode ser irritante para quem quer o contrário, preservar os intervalos, mas eu quase nunca quis preservar os intervalos, então o LibreOffice e o Numbers acabam sendo incômodos para mim
O motivo de as pessoas não ligarem muito é que o caso de uso mais popular de uma suíte office é interoperar com os formatos de arquivo da Microsoft
Para executar scripts dentro do LibreOffice, o APSO script organiser é recomendado: https://extensions.libreoffice.org/en/extensions/show/apso-a...
À medida que a base de usuários mais velha, que nunca usou uma linguagem de programação, envelhece e se aposenta, quem aprender a combinar Python com Excel acabará preferindo Python. Ele é mais flexível e extensível
Tirando o uso como uma calculadora básica em forma de tabela, não há motivo para usar Excel. Se alguém pede uma planilha, eu automatizo a geração em Python para nunca mais ter que mexer nela manualmente
Decepcionante
“Python no Excel está disponível atualmente para usuários que executam o Canal Beta no Windows. O recurso será lançado primeiro no Excel para Windows, a partir do build 16.0.16818.2000, e depois será disponibilizado em outras plataformas.” [1]
“Python no Excel está disponível no Excel para Windows. O recurso não está disponível no Excel para Mac, Excel para a Web, Excel para iPad, Excel para iPhone nem Excel para Android. Em plataformas sem suporte, as pastas de trabalho que contêm Python podem ser visualizadas, mas recalcular células Python exibirá um erro.” [2]
[1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
[2] https://support.microsoft.com/en-us/office/introduction-to-p...
“Os cálculos em Python rodam na Microsoft Cloud”? Dispenso
Espera aí. O LibreOffice tem Python há anos, ninguém ligava, e em vez disso reclamavam que para “trabalho de verdade” era preciso VBA 100% compatível. Onde estão essas pessoas agora?
Se o VBA do LibreOffice fosse compatível com o VBA do Office, não haveria motivo para manter um sistema Windows velho guardado em algum lugar
Fazemos isso para ganhar dinheiro, e ninguém quer comprar uma planilha do Excel que não roda no Excel
Eu trabalho no Linux com o LibreOffice Calc, e como o Excel tem zero suporte a Linux, seria ótimo ter compatibilidade suficiente para enviar arquivos a clientes sem problemas, mas ainda não chega nem perto disso
Se as pessoas não sabem que existe, elas não usam
Se estão acostumadas com outra coisa, elas exigem aquilo