1 pontos por GN⁺ 2023-08-23 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2023-08-23
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”

    • Graças às funções assíncronas em JavaScript, foi possível lançar funções personalizadas estáveis com xlwings e Python
      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...
    • Alguns anos atrás, já havíamos criado um “Python dentro do Excel” funcional, e SQL e Matlab/R também rodavam remotamente
      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
    • Fico me perguntando por que a Microsoft não criou exemplos decentes da nova tecnologia. Os poucos exemplos fornecidos são apenas para programadores
      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”
    • Estamos usando funções personalizadas em JavaScript para chamar nossa API interna de análise, e tem sido bastante bom trabalhar com isso
  • 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

    • Sempre recebo resistência quando falo sobre isso. Os usuários só querem analisar dados livremente no Excel, mas o pessoal de TI do qual faço parte quer criar um web app para fazer isso por eles. No fim, os usuários não ficam satisfeitos, porque o que eles queriam desde o início era o Excel
      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
    • Trabalho na equipe do Excel. Se você puder resumir por que isso é importante e enviar para bgruenbaum@microsoft.com, eu repasso para o PM
      Ou então envie pela UI de feedback do Excel Web/Desktop. Os PMs leem todo esse feedback
    • Há alguns motivos importantes para executar isso em contêineres isolados por hipervisor no Azure, sem acesso à internet
      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
    • O fato de rodar na Microsoft Cloud pode torná-lo mais útil do que macros na nossa empresa
      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
    • Limitar à nuvem faz certo sentido. Se Python virar uma parte central do formato de arquivo do Excel, a portabilidade cai e todo tipo de dor de cabeça de compatibilidade pode aparecer no futuro
  • 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

    • “Você não será dono de nada, mas será feliz” agora chegou até as planilhas? Nem aquilo que se produz trabalhando assalariado diante da mesa será seu
    • Sinceramente, isso parece mais fácil de administrar. Como estão usando a distribuição Anaconda, se cada pasta de trabalho puder ser vinculada a uma distribuição específica e houver possibilidade de atualização/rollback, fica muito mais fácil do que gerenciar instalações locais
    • Não fica preso só à nuvem, mas também à assinatura. Se você cancelar a assinatura, não tiver aquela assinatura que, na apresentação, disseram que poderia ser um módulo pago, ou se o Excel foi fornecido por um fornecedor e não houver assinatura, já terá problemas para usar essa planilha do Excel
    • Nos últimos 7 anos mais ou menos, acho que não usei uma planilha que não fosse na nuvem. Mas eu não usaria Excel para trabalhos muito importantes e de longa vida útil. Uso principalmente para brainstorming ou para colocar screenshots em apresentações
    • Usando nuvem ou não, esse problema já existe. Planilhas do Excel já podem ter links externos para a web ou para outros arquivos; se esse recurso web ou arquivo não existir, acabou. Arquivos antigos podem só abrir em softwares que já não rodam em máquinas modernas
      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

    • É um sinal de alerta. A M$ está empurrando as pessoas para a nuvem dela. A forma como o OneDrive sequestra o sistema de arquivos local é um bom exemplo que muita gente já experimentou
      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
    • Não pedir que o cliente gerencie uma instalação local do Python pode ser um motivo
      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
    • Provavelmente porque a maioria dos usuários de Excel nunca instalou nem executou Python. Mesmo para quem conhece Python, é uma tarefa bem chata
      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
    • Também existe o Grist. Não é um clone do Excel, mas é uma planilha/banco de dados híbrido, então consegue fazer algumas coisas parecidas, e o mais importante é que dá para usar Python em fórmulas; se você quiser rodar localmente, também há opção de self-hosting
  • 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

    • Era um bom produto. Lembro do pitch e também encontrei vocês algumas vezes em encontros de Python para finanças em Londres. Também me lembro da “Enthought Python Distribution”
      O problema é que o Resolver era baseado em IronPython, então havia várias bibliotecas que não funcionavam direito
    • Criei meu primeiro app no PythonAnywhere. Algumas coisas ainda rodam lá há quase 10 anos
      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
    • PythonAnywhere é excelente. Como outras pessoas, também foi onde dei meus primeiros passos em programação web
    • Assim que ouvi essa notícia, a Resolver Systems me veio imediatamente à cabeça
  • 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.23
    procurando fastapi version 11.09.2023…

    • Desde que mexi no apt do Debian, 20 anos atrás, espero que a Microsoft resolva a gestão de pacotes no Windows. Não estou sendo irônico: dada a complexidade dos produtos da Microsoft e sua obsessão por compatibilidade retroativa, ela me parecia justamente o tipo de agente capaz de fazer a gestão de software avançar
      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
    • Isso levanta uma questão. A Microsoft deveria congelar um conjunto de pacotes LTSC? Como uma $GOV_AGENCY usando 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

    • Em muitos casos, o que mantém as pessoas presas ao Excel e a outros produtos proprietários não são recursos avançados, mas coisas que parecem pequenas
      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 c e depois colar abaixo de d e f, o Excel cola apenas as linhas selecionadas em sequência. O LibreOffice e o Numbers preservam também as linhas vazias intermediárias
      Nã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 LibreOffice inclui scripting em Python praticamente desde o começo
      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
    • Vale conferir o ScriptForge: https://help.libreoffice.org/latest/en-US/text/sbasic/shared...
      Para executar scripts dentro do LibreOffice, o APSO script organiser é recomendado: https://extensions.libreoffice.org/en/extensions/show/apso-a...
    • Para mim parece justamente o contrário. Python torna scripting tão fácil que o Excel está pregando um prego no próprio caixão
      À 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
    • O LibreOffice tem muitos outros problemas para resolver primeiro. É lento demais
  • 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

    • Essa parte também me chamou a atenção. Fico curioso para saber por que escolheram esse modelo
    • Quero muito uma ótima integração com Python em uma suíte de planilhas, mas esta eu nem penso em testar
  • 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?

    • Estou aqui. O problema não é só VBA 100% compatível, mas ter que aprender uma API completamente nova para criar planilhas baseadas em VBA que não serão executadas no Excel
      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
    • Não é que eu fique incomodado porque o Excel consegue fazer mais coisas; é que o LibreOffice ainda pode ser inconveniente por não ter recursos aos quais as pessoas estão acostumadas ou que são obrigadas a usar
    • Se algum dos meus clientes usasse LibreOffice, eu usaria com prazer. Mas ninguém usa
      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 o recurso é ruim, as pessoas não usam
      Se as pessoas não sabem que existe, elas não usam
      Se estão acostumadas com outra coisa, elas exigem aquilo
    • O problema do LibreOffice era que o suporte a Python existia só no papel