Microsoft planea incorporar Python en Excel
(theverge.com)- Microsoft comenzó a ofrecer en vista previa pública una integración que permite hacer análisis y visualización de datos basados en Python dentro de Excel
- Sin instalaciones adicionales, se puede acceder a Python desde la cinta de Excel y refinar los resultados junto con las fórmulas, gráficos y PivotTable existentes
- La nueva función PY expone datos de Python en la cuadrícula de la hoja de cálculo, y gracias a la colaboración con Anaconda es posible usar pandas, statsmodels, Matplotlib y más dentro de Excel
- Los cálculos no se ejecutan localmente, sino en Microsoft Cloud, y luego regresan a la hoja de cálculo; también se pueden crear visualizaciones basadas en Matplotlib y Seaborn
- La vista previa pública comienza en Windows dentro del Beta Channel de Microsoft 365 Insiders y, una vez finalizada la vista previa, algunas funciones quedarán limitadas sin una licencia de pago
Análisis con Python dentro de Excel
- Microsoft agregó a Excel una integración con Python que permite manipular y analizar datos dentro de una hoja de cálculo
- Los usuarios pueden acceder directamente a Python desde la cinta de Excel, lo que les permite continuar con tareas de análisis avanzadas sin salir del entorno de Excel que ya conocen
- Los gráficos y resultados de bibliotecas creados con Python pueden combinarse con fórmulas, gráficos y PivotTable de Excel para refinarlos aún más
Integración incorporada sin instalación adicional
- La integración con Python se ofrece como parte de los conectores integrados de Excel y de Power Query
- Se puede acceder a ella sin instalar software adicional ni configurar complementos aparte
- La nueva función PY expone datos de Python dentro de la cuadrícula de la hoja de cálculo de Excel
Bibliotecas de Anaconda y visualización
- Microsoft colaboró con Anaconda, el repositorio empresarial de Python, para permitir el uso de bibliotecas clave de Python en Excel
- Entre las bibliotecas disponibles se incluyen:
- pandas
- statsmodels
- Matplotlib
- Los usuarios de Excel pueden crear fórmulas, PivotTable y gráficos a partir de datos de Python
- Con bibliotecas de gráficos como Matplotlib y Seaborn, pueden generar las siguientes visualizaciones:
- heatmap
- violin plot
- swarm plot
Los cálculos se procesan en Microsoft Cloud
- El código Python se escribe y se usa dentro de la hoja de cálculo de Excel, pero el procesamiento de los cálculos no se realiza en el Excel local, sino en Microsoft Cloud
- Los resultados de la ejecución se devuelven luego a la hoja de cálculo de Excel
Disponibilidad y condiciones de licencia
- La vista previa pública de Python in Excel está disponible en el Beta Channel de Microsoft 365 Insiders
- La disponibilidad inicial está limitada a Windows
- Microsoft planea ampliarla más adelante a otras plataformas
- Durante el periodo de vista previa, está incluida en la suscripción de Microsoft 365
- Una vez finalizada la vista previa, algunas funciones quedarán limitadas si no se cuenta con una licencia de pago
1 comentarios
Opiniones de Hacker News
Como alguien que antes trabajó como desarrollador de Excel e intentó, sin éxito, meter Python en Excel, la noticia de hoy es una grata sorpresa.
Hace unos 7 años tuve la oportunidad de dejar el equipo de Excel, pero en ese momento el jefe de mi jefe se enteró de que yo quería incorporar Python en Excel y me dijo que, si me quedaba, me encargaría de eso. Lo que pensé que sería un trabajo de 6 meses se convirtió en un proyecto de casi 3 años y, mientras lo de Python se fue diluyendo, al final se lanzó en la dirección de incorporar funciones personalizadas de JavaScript en Excel.
Python también se ejecutaba “en la nube” sobre AzureML v1, pero hubo idas y vueltas sobre si debía ejecutarse localmente. Hubo reorganizaciones, relanzamientos, recontrataciones y salidas de PM en el equipo socio de AzureML, y cuando otro equipo socio se dio cuenta de que podía usar nuestro código para ejecutar JavaScript en un proceso externo, terminamos dedicando mucho más tiempo a lanzar esa funcionalidad que a Python.
El trabajo central fue cambiar el motor de cálculo de Excel para que las funciones pudieran hacer cálculos asíncronos, permitiendo que el usuario siguiera trabajando en otras partes de la hoja de cálculo mientras un endpoint remoto calculaba, ya fuera JavaScript, Python o cualquier otra cosa. Antes, durante el cálculo, la hoja quedaba bloqueada, lo cual no era bueno para cálculos largos y sin un final claro. Me pregunto si algo de lo que construimos entró en esta función.
“Recalcular o morir”
El problema de Office.js es que para el usuario promedio de Excel es demasiado difícil empezar por el montón de dependencias de npm, e incluso los desarrolladores profesionales sufren bastante. Me alegra que hayamos hecho que los usuarios no tengan que usar Node.js: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
Es un proyecto abandonado ahora: https://alphawolfxl.com/
Se lo pedí a varias personas para pruebas beta y me dijeron que “la empresa no pagaría por eso”, así que me quedé con la impresión de que había perdido el tiempo y lo dejé. Ver esto ahora me deja sentimientos encontrados.
En general faltan códigos funcionales reales para ver cómo funciona JavaScript en Excel, y ahora se siente casi al nivel de “cómo dibujar un búho”.
Me gustaría que también admitiera ejecución local de Python, y no solo el enfoque de usar Microsoft Cloud, pero aun así esta sola función podría modernizar mucho Excel.
Incluso podría eliminar la necesidad de sitios web que intentan mostrar este tipo de datos. En un trabajo anterior hice un sitio web interno de análisis que solo usaban unas pocas personas, y si esta función hubiera existido entonces, creo que habría sido suficiente para reemplazarlo.
Sigo explicando que basta con crear un data mart en SQL Server y llenarlo con los datos necesarios para el análisis mediante herramientas ETL. No hace falta darles acceso a los datos de origen. Pero aun así todos me miran raro y, en cambio, quieren hacer un proyecto de implementación de Tableau de varios millones de dólares. Es absurdo, porque los usuarios no quieren eso.
O también puedes enviarlo mediante la UI de comentarios de Excel web/escritorio. Los PM leen todo ese feedback.
Podemos garantizar una experiencia consistente para todos los usuarios. Da terror pensar que, con el tiempo y la divergencia de versiones, cada quien tendría que mantener su propia distribución local de Python y garantizar que funcione con Excel.
Podemos hacer que, cuando compartas un libro de Excel con otro usuario, los cálculos simplemente funcionen. Si dependieran de instalaciones locales de Python todas distintas, eso no pasaría y el usuario se frustraría mucho.
La seguridad también es enorme. Basta imaginar abrir un archivo de Excel que pueda ejecutar código Python con los permisos del usuario local.
También estoy totalmente de acuerdo con el segundo punto. Crear en Python apps internas que se integren con la infraestructura de TI existente es, siendo generosos, frustrante. Excel ya forma parte de la infraestructura de TI en casi todos lados, y es un lienzo reactivo y programable.
Aclaración: trabajo en el equipo de diseño de esta función.
Aquí las macros se ven como una vía para ejecutar malware en las máquinas cliente, y se considera que su utilidad no es tan grande como para asumir ese riesgo.
Aquí se ve claramente una señal de alerta. La fuerza esencial de Excel viene de que un libro de trabajo puede existir de forma independiente, pero ahora el proceso queda atado para siempre a la nube.
Cuando dentro de 3 años haya que abrir el libro de trabajo de un colega fallecido, dependerá de si el proveedor sigue dando soporte a esta integración.
Es terrible cuando el primer paso de cualquier tarea pasa a ser “averiguar cómo hacer que el software vuelva a funcionar”. Me ha pasado varias veces durante las últimas décadas por todo tipo de complementos de Excel, Outlook y Word, y esos complementos ni siquiera hacían el procesamiento de forma remota.
Por eso es importante restaurar de vez en cuando las copias de seguridad en la práctica o, en casos así, verificar los archivos importantes.
Me entusiasmé con “Python en Excel”, pero se me pasó al ver la frase “se ejecuta en la nube”. No parece haber otra razón que mantenerte atado a un servicio en la nube. Se siente demasiado parecido a que quieran protegerme de la tinta de impresora insegura.
Por lo general me gustan los productos de MS Office y tiendo a darles el beneficio de la duda. Si hay una buena razón plausible para exigir que Python se ejecute en la nube, aparte del lock-in, me gustaría conocerla.
Creo que el momento de alejarse de M$ pasó hace unos 5 años. Desde Windows hasta Office, todos sus productos ya tienen funciones anticonsumidor.
Aunque, claro, entiendo que los usuarios avanzados de Excel+Python probablemente estén acostumbrados a traer y mantener su propio runtime de Python.
También hay gente que usa Excel en dispositivos iOS y Android. Con este enfoque, ellos también pueden usar y leer Python dentro de una hoja de cálculo.
En 2005, con unos amigos creamos una empresa llamada Resolver Systems e hicimos Resolver One, una hoja de cálculo con Python.
Lamentablemente no despegó en el mercado, así que cambiamos de rumbo y creamos PythonAnywhere, un entorno online de codificación y hosting, que sí funcionó bastante bien y el año pasado fue adquirido por Anaconda. Y ahora el círculo se cerró.
Para aclarar: dentro de Anaconda, el equipo que desarrolla esta función es completamente distinto del equipo de PythonAnywhere. Si fueran las mismas personas, habría sido una historia perfecta al estilo Hollywood.
Pero el problema era que Resolver estaba basado en IronPython, así que había bastantes librerías que no funcionaban bien.
Me encantaba poder hacer pequeñas correcciones directamente desde la webapp de PythonAnywhere, y cuando empecé a usar GCP/AWS extrañé mucho esa función.
Al ver la frase “los cálculos de Python se ejecutan en Microsoft Cloud”, un colega bromeó: “Parece que ni Microsoft puede administrar una instalación local de Python en Windows…”.
Pero es divertido imaginar que Microsoft por fin resuelve de verdad el problema de configurar entornos locales de Python, y que Excel se convierte en el administrador estándar de paquetes de Python para todo el sistema operativo.
$ excelpip install fastapi==9.11.23Buscando fastapi version 11.09.2023…Pensé que profundizaría en el espacio del problema y reinventaría un administrador de paquetes que superara lo que salió del mundo open source.
En cambio, ahora tenemos Windows Update, Windows Features, Microsoft Store, Software Center y winget. winget es el administrador de paquetes para Windows hecho por Microsoft, esa herramienta que tienes que instalar desde otro administrador de paquetes para Windows hecho por Microsoft.
$GOV_AGENCYque usa una versión de Excel una generación atrasada?LibreOffice debería haber leído el ambiente hace mucho tiempo. En principio es posible hacer scripting con Python, pero es demasiado engorroso y desordenado, y no parece haber una hoja de ruta de mejoras
La misma advertencia aplica al escritorio Linux y a sus apps en general. Cada vez más plataformas propietarias, basadas en la nube, a menudo mediante API de Python, incorporarán extensiones de funciones avanzadas de “IA” en apps existentes
Es una lástima que varias corrientes del mundo open source estén tan siloizadas. Se está desperdiciando un potencial mayor que la suma de sus partes
Lo que más me molesta en las hojas de cálculo de LibreOffice y Apple Numbers es cómo manejan copiar/pegar selecciones no contiguas
Por ejemplo, si en datos de 5 filas y 3 columnas seleccionas y copias las filas
1 2 3,7 8 9,a b c, y luego las pegas debajo ded e f, Excel pega solo las filas seleccionadas una tras otra. LibreOffice y Numbers preservan incluso las filas vacías intermediasNo encontré ninguna configuración para cambiar este comportamiento. Excel también podría ser molesto para quienes quieran preservar los espacios, pero yo casi nunca he querido hacerlo, así que LibreOffice y Numbers me resultan incómodos
La razón por la que a la gente no le importa mucho es que el caso de uso más popular de las suites de oficina es interoperar con los formatos de archivo de Microsoft
Para ejecutar scripts dentro de LibreOffice, se recomienda APSO script organiser: https://extensions.libreoffice.org/en/extensions/show/apso-a...
A medida que la base de usuarios mayores que nunca ha usado un lenguaje de programación envejece y se jubila, quienes aprendan a combinar Python con Excel terminarán prefiriendo Python. Porque es más flexible y extensible
Fuera del uso básico como tabla de cálculo, no hay razón para usar Excel. Si alguien me pide una hoja de cálculo, automatizo su generación con Python para no tener que volver a tocarla manualmente
Decepcionante
“Python en Excel está disponible actualmente para usuarios que ejecutan el canal beta en Windows. Esta característica se implementará primero en Excel para Windows a partir de la compilación 16.0.16818.2000, y luego estará disponible en otras plataformas.” [1]
“Python en Excel está disponible en Excel para Windows. Esta característica no está disponible en Excel para Mac, Excel para la Web, Excel para iPad, Excel para iPhone ni Excel para Android. En plataformas no compatibles, se pueden ver libros que contienen Python, pero si se recalculan celdas de Python aparecerá un error.” [2]
[1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
[2] https://support.microsoft.com/en-us/office/introduction-to-p...
“Los cálculos de Python se ejecutan en Microsoft Cloud”, no gracias
Un momento. LibreOffice tenía Python desde hace años y a nadie le importó; en cambio, se quejaban de que para el “trabajo real” hacía falta VBA 100% compatible. ¿Dónde está esa gente ahora?
Si el VBA de LibreOffice hubiera sido compatible con el VBA de Office, no habría razón para seguir manteniendo un sistema Windows viejo guardado en algún lado
Hacemos esto para ganar dinero, y nadie quiere comprar una hoja de cálculo de Excel que no se ejecute en Excel
Trabajo con LibreOffice Calc en Linux, y como Excel no tiene soporte para Linux en absoluto, me gustaría que hubiera suficiente compatibilidad como para poder enviárselo a los clientes sin problemas, pero todavía no estamos ni cerca
Si la gente no sabe que existe, no la usa
Si está acostumbrada a otra cosa, exige eso