Microsoft sắp đưa Python vào Excel
(theverge.com)- Microsoft bắt đầu cung cấp bản xem trước công khai cho tính năng tích hợp phân tích và trực quan hóa dữ liệu bằng Python ngay trong Excel
- Có thể truy cập Python từ ribbon của Excel mà không cần cài đặt riêng, đồng thời tinh chỉnh kết quả cùng với công thức, biểu đồ và PivotTable hiện có
- Hàm PY mới đưa dữ liệu Python hiển thị trên lưới bảng tính, và nhờ hợp tác với Anaconda, có thể sử dụng pandas, statsmodels, Matplotlib ngay trong Excel
- Việc tính toán không chạy cục bộ mà được thực thi trên Microsoft Cloud rồi trả kết quả về worksheet, đồng thời cũng có thể tạo trực quan hóa dựa trên Matplotlib và Seaborn
- Bản xem trước công khai bắt đầu trên Windows trong Beta Channel dành cho Microsoft 365 Insiders, và sau khi kết thúc giai đoạn preview, một số tính năng sẽ bị giới hạn nếu không có giấy phép trả phí
Phân tích Python đi vào bên trong Excel
- Microsoft đã bổ sung tính năng tích hợp Python vào Excel, cho phép thao tác và phân tích dữ liệu ngay trong bảng tính
- Người dùng có thể truy cập trực tiếp vào Python từ ribbon của Excel, tiếp tục các tác vụ phân tích nâng cao mà không cần rời khỏi môi trường Excel quen thuộc
- Các biểu đồ và kết quả thư viện tạo bằng Python có thể được kết hợp với công thức, biểu đồ và PivotTable của Excel để tiếp tục tinh chỉnh
Cách tích hợp sẵn, không cần cài đặt riêng
- Tích hợp Python được cung cấp như một phần của trình kết nối tích hợp sẵn của Excel và Power Query
- Có thể truy cập mà không cần cài đặt thêm phần mềm hay cấu hình add-in riêng
- Hàm PY mới hiển thị dữ liệu Python trong lưới bảng tính Excel
Thư viện Anaconda và trực quan hóa
- Microsoft hợp tác với Anaconda, kho Python cho doanh nghiệp, để cho phép sử dụng các thư viện Python chủ chốt trong Excel
- Các thư viện có thể dùng bao gồm
- pandas
- statsmodels
- Matplotlib
- Người dùng Excel có thể tạo công thức, PivotTable và biểu đồ dựa trên dữ liệu Python
- Với các thư viện biểu đồ như Matplotlib và Seaborn, có thể tạo các dạng trực quan hóa sau
- heatmap
- violin plot
- swarm plot
Tính toán được xử lý trên Microsoft Cloud
- Mã Python được viết và sử dụng trong bảng tính Excel, nhưng việc tính toán không diễn ra trên Excel cục bộ mà trên Microsoft Cloud
- Kết quả thực thi sau đó được trả lại worksheet của Excel
Phạm vi cung cấp và điều kiện giấy phép
- Bản xem trước công khai của Python in Excel được cung cấp trong Beta Channel của Microsoft 365 Insiders
- Đối tượng được cung cấp ban đầu bị giới hạn ở Windows
- Microsoft dự kiến sau đó sẽ mở rộng sang các nền tảng khác
- Trong thời gian preview, tính năng này được bao gồm trong gói đăng ký Microsoft 365
- Sau khi kết thúc preview, một số tính năng sẽ bị giới hạn nếu không có giấy phép trả phí
1 bình luận
Các ý kiến trên Hacker News
Từng làm lập trình viên Excel và từng thất bại khi cố đưa Python vào Excel, nên tin hôm nay là một bất ngờ đáng mừng với tôi
Khoảng hơn 7 năm trước, tôi có cơ hội rời nhóm Excel, nhưng sếp của sếp tôi biết tôi muốn đưa Python vào Excel nên đã nói rằng nếu ở lại thì sẽ giao việc đó cho tôi. Việc tôi tưởng chỉ kéo dài 6 tháng cuối cùng trở thành một dự án khoảng 3 năm, và phần Python dần mờ nhạt đi, cuối cùng sản phẩm được phát hành theo hướng đưa hàm tùy chỉnh JavaScript vào Excel
Python cũng được chạy “trên đám mây” dựa trên AzureML v1, nhưng đã có nhiều thảo luận qua lại về việc có chạy cục bộ hay không. Có tái cơ cấu, tái ra mắt, tuyển lại nhân sự trong nhóm đối tác AzureML, rồi PM rời đi; trong khi đó một nhóm đối tác khác nhận ra họ có thể dùng mã của chúng tôi để chạy JavaScript trong một tiến trình bên ngoài, nên chúng tôi dành nhiều thời gian để phát hành tính năng đó hơn là Python
Công việc cốt lõi là thay đổi engine tính toán của Excel để các hàm có thể tính toán bất đồng bộ, cho phép người dùng tiếp tục làm việc trên các phần khác của bảng tính trong khi endpoint từ xa đang tính toán JavaScript, Python hay bất cứ thứ gì khác. Trước đây, trong lúc tính toán thì bảng tính bị khóa, không phù hợp với các phép tính lâu và không biết bao giờ kết thúc. Tôi tò mò không biết một phần những gì chúng tôi làm có được đưa vào tính năng lần này không
“Tính lại hoặc chết”
Vấn đề của Office.js là với người dùng Excel trung bình, việc bắt đầu quá khó vì cả đống phụ thuộc npm, và ngay cả lập trình viên chuyên nghiệp cũng khá vất vả. Tôi hài lòng vì đã làm được việc người dùng không cần dùng Node.js: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
Giờ là dự án đã bỏ: https://alphawolfxl.com/
Một số người tôi nhờ thử nghiệm beta nói rằng “công ty sẽ không trả tiền cho thứ này”, khiến tôi có cảm giác mình đang lãng phí thời gian nên đã dừng lại; giờ nhìn thấy việc này, cảm xúc thật lẫn lộn
Nhìn chung đang thiếu mã chạy được trong thực tế để xem JavaScript hoạt động trong Excel như thế nào, và hiện tại cảm giác gần như ở mức “cách vẽ một con cú”
Tôi mong họ cũng hỗ trợ chạy Python cục bộ chứ không chỉ dùng Microsoft Cloud, nhưng chỉ riêng tính năng này thôi cũng có vẻ có thể hiện đại hóa Excel rất nhiều
Nó thậm chí có thể loại bỏ nhu cầu về các website dùng để hiển thị loại dữ liệu này. Ở công ty cũ, tôi từng xây một website phân tích chỉ vài người nội bộ dùng; nếu khi đó có tính năng như thế này thì có lẽ hoàn toàn có thể thay thế bằng nó
Tôi cứ giải thích rằng chỉ cần tạo data mart bằng SQL Server rồi dùng công cụ ETL để nạp dữ liệu cần cho phân tích vào đó là được. Không cần cho họ truy cập dữ liệu gốc. Vậy mà ai cũng nhìn tôi kỳ quặc, rồi lại muốn làm dự án triển khai Tableau trị giá hàng triệu đô. Người dùng không muốn thứ đó, thật hết sức vô lý
Hoặc bạn cũng có thể gửi qua UI phản hồi của Excel web/desktop. Các PM đọc toàn bộ phản hồi đó
Có thể bảo đảm trải nghiệm nhất quán cho tất cả người dùng. Thử nghĩ theo thời gian các phiên bản tách nhánh, mỗi người phải tự duy trì bản phân phối Python cục bộ của mình và bảo đảm nó hoạt động với Excel thì thật kinh khủng
Khi chia sẻ sổ làm việc Excel với người khác, các phép tính có thể cứ thế hoạt động. Nếu phụ thuộc vào các bản cài Python cục bộ mỗi nơi một kiểu thì điều đó không xảy ra, và người dùng sẽ rất bực bội
Bảo mật cũng là vấn đề lớn. Hãy tưởng tượng việc mở một file Excel có thể chạy mã Python với quyền của người dùng cục bộ
Tôi cũng hoàn toàn đồng ý với điểm thứ hai. Việc tạo ứng dụng nội bộ bằng Python tích hợp với hạ tầng IT hiện có, nói nhẹ thì cũng rất bực mình. Excel gần như ở đâu cũng đã là một phần của hạ tầng IT, và là một canvas phản ứng có thể lập trình
Công khai: Tôi đang làm trong nhóm thiết kế tính năng này
Ở đây, macro bị xem là một đường để chạy mã độc trên máy khách, và lợi ích của nó không được coi là đủ lớn để chấp nhận rủi ro đó
Ở đây rõ ràng có tín hiệu cảnh báo. Sức mạnh cốt lõi của Excel đến từ việc một workbook có thể tồn tại độc lập, nhưng giờ quy trình sẽ bị buộc vĩnh viễn vào cloud
Ba năm nữa, khi cần mở workbook của một đồng nghiệp đã qua đời, việc đó sẽ phụ thuộc vào chuyện vendor có tiếp tục hỗ trợ tính năng tích hợp này hay không
Thật kinh khủng nếu bước đầu tiên của bất kỳ công việc nào cũng là “tìm cách làm cho phần mềm chạy lại”. Trong vài thập kỷ qua tôi đã gặp chuyện này nhiều lần với đủ loại add-in của Excel, Outlook, Word, mà các add-in đó thậm chí còn không xử lý từ xa
Vì vậy thỉnh thoảng thực sự khôi phục thử bản backup, hoặc trong những trường hợp như thế này thì kiểm chứng các file quan trọng, là điều rất cần thiết
Tôi đã hào hứng với “Python trong Excel”, rồi thấy cụm “chạy trên cloud” thì hết hứng. Có vẻ chẳng có lý do nào ngoài việc muốn trói người dùng vào dịch vụ cloud. Cảm giác quá giống kiểu họ nói sẽ bảo vệ tôi khỏi mực máy in không an toàn
Bình thường tôi thích các sản phẩm MS Office và có xu hướng nhìn nhận tích cực. Nếu có lý do hợp lý nào, ngoài lock-in, để bắt Python chạy trên cloud thì mong ai đó cho biết
Tôi nghĩ lẽ ra đã phải rời khỏi M$ từ khoảng 5 năm trước rồi. Từ Windows đến Office, mọi sản phẩm đều đã có tính năng phản người tiêu dùng
Dĩ nhiên tôi cũng hiểu rằng người dùng nâng cao Excel+Python nhiều khả năng đã quen tự mang theo và duy trì Python runtime của mình
Cũng có người dùng Excel trên thiết bị iOS và Android. Với cách này, họ cũng có thể dùng và đọc Python bên trong spreadsheet
Năm 2005, tôi cùng bạn bè lập một công ty tên Resolver Systems và tạo ra Resolver One, một spreadsheet có thể dùng Python
Đáng tiếc là nó không thành công trên thị trường, nên chúng tôi chuyển hướng sang tạo môi trường lập trình và hosting online PythonAnywhere; cái này thì khá thành công và năm ngoái được Anaconda mua lại. Và giờ thì vòng tròn đã khép lại
Nói rõ hơn, trong Anaconda, đội làm tính năng này hoàn toàn tách biệt với đội PythonAnywhere. Nếu là cùng một nhóm người thì đúng là câu chuyện kiểu Hollywood quá đẹp
Tuy nhiên vấn đề là Resolver dựa trên IronPython, nên có khá nhiều thư viện không hoạt động đúng
Tôi thật sự thích việc có thể chỉnh sửa nhỏ trực tiếp trong webapp PythonAnywhere, và khi bắt đầu dùng GCP/AWS thì tôi rất nhớ tính năng kiểu đó
Khi thấy câu “Các phép tính Python chạy trên Microsoft Cloud”, đồng nghiệp tôi đùa rằng “Có vẻ ngay cả Microsoft cũng không quản lý nổi cài đặt Python local trên Windows…”
Nhưng cũng thú vị nếu tưởng tượng Microsoft thật sự cuối cùng giải quyết được vấn đề thiết lập môi trường Python local, và Excel trở thành trình quản lý package Python tiêu chuẩn trên toàn hệ điều hành
$ excelpip install fastapi==9.11.23Đang tìm fastapi version 11.09.2023…Tôi tưởng họ sẽ đào sâu vào không gian vấn đề và tái phát minh một package manager vượt qua những gì phía open source đã làm
Thay vào đó giờ chúng ta có Windows Update, Windows Features, Microsoft Store, Software Center, winget. winget là package manager cho Windows do Microsoft tạo ra, nhưng lại là công cụ phải cài từ một package manager khác cho Windows cũng do Microsoft tạo ra
$GOV_AGENCYdùng phiên bản Excel chậm hơn một thế hệ thì sẽ cộng tác với thế giới bằng cách nào?LibreOffice lẽ ra đã phải nắm bắt xu hướng từ lâu rồi. Về nguyên tắc thì có thể scripting bằng Python, nhưng quá rườm rà và lộn xộn, và dường như cũng không có lộ trình cải thiện
Cảnh báo tương tự cũng áp dụng cho desktop Linux và toàn bộ các ứng dụng của nó. Ngày càng nhiều nền tảng độc quyền sẽ mở rộng các ứng dụng hiện có bằng những tính năng “AI” nâng cao dựa trên cloud, thường là thông qua Python API
Thật tiếc là nhiều luồng phát triển trong thế giới mã nguồn mở bị đóng silo quá mức. Tiềm năng lớn hơn tổng các phần đang bị lãng phí
Điều tôi bất mãn nhất ở bảng tính LibreOffice và Apple Numbers là cách xử lý sao chép/dán vùng chọn không liên tục
Ví dụ, với dữ liệu 5 hàng 3 cột, nếu chọn và sao chép các hàng
1 2 3,7 8 9,a b crồi dán bên dướid e f, Excel sẽ chỉ nối các hàng đã chọn lại với nhau. LibreOffice và Numbers thì giữ cả các hàng trống ở giữaTôi không tìm được thiết lập nào để đổi hành vi này. Excel cũng có thể gây khó chịu theo chiều ngược lại với những người muốn giữ khoảng cách, nhưng tôi hầu như chưa bao giờ muốn giữ khoảng cách nên LibreOffice và Numbers thật bất tiện
Lý do mọi người không quá bận tâm là vì trường hợp sử dụng phổ biến nhất của bộ ứng dụng văn phòng là tương tác được với các định dạng tệp của Microsoft
Để chạy script trong LibreOffice, nên dùng APSO script organiser: https://extensions.libreoffice.org/en/extensions/show/apso-a...
Khi nhóm người dùng lớn tuổi chưa từng dùng ngôn ngữ lập trình dần già đi và nghỉ hưu, những người học cách kết hợp Python vào Excel rốt cuộc sẽ thích Python hơn. Vì nó linh hoạt và mở rộng được hơn
Ngoài mục đích làm bảng tính toán cơ bản thì không có lý do gì để dùng Excel. Nếu ai đó yêu cầu spreadsheet, tôi sẽ tự động hóa việc tạo nó bằng Python để không bao giờ phải trực tiếp xử lý nữa
Thất vọng
“Python trong Excel hiện được cung cấp cho người dùng chạy Beta Channel trên Windows. Tính năng này sẽ được triển khai trước cho Excel trên Windows từ build 16.0.16818.2000, rồi sau đó mới đến các nền tảng khác.” [1]
“Python trong Excel có thể dùng trong Excel cho Windows. Tính năng này không có trên Excel cho Mac, Excel cho web, Excel cho iPad, Excel cho iPhone, Excel cho Android. Trên các nền tảng không được hỗ trợ, bạn có thể xem workbook có Python, nhưng nếu tính toán lại các ô Python thì sẽ hiển thị lỗi.” [2]
[1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
[2] https://support.microsoft.com/en-us/office/introduction-to-p...
“Các phép tính Python chạy trên Microsoft Cloud” à, xin miễn
Khoan đã. LibreOffice đã có Python từ vài năm trước nhưng chẳng ai quan tâm, thay vào đó mọi người phàn nàn rằng “công việc thật sự” cần VBA tương thích 100%. Giờ những người đó ở đâu rồi?
Nếu LibreOffice VBA tương thích với Office VBA, chúng tôi đã không cần giữ một hệ thống Windows cũ kỹ ở đâu đó nữa
Lý do chúng tôi làm việc này là để kiếm tiền, và không ai muốn mua một spreadsheet Excel mà lại không chạy được trong Excel
Tôi làm việc bằng LibreOffice Calc trên Linux, còn Excel thì hỗ trợ Linux bằng 0, nên tôi muốn có mức tương thích đủ để gửi cho khách hàng mà không gặp vấn đề, nhưng hiện vẫn còn xa mới đạt được
Nếu không biết nó tồn tại, mọi người sẽ không dùng
Nếu đã quen với thứ khác, mọi người sẽ yêu cầu thứ đó