Cách lấy dữ liệu real-time từ website lên excel

Excel hỗ trợ nhận dữ liệu thời gian thực vào trang tính bằng hàm RTD, nhưng điều này yêu cầu lập trình máy chủ COM mà hàm RTD giao tiếp

Power BI có thể sử dụng truyền dữ liệu qua các kết nối API hoặc PubNub, nhưng nếu tôi chỉ muốn kéo trực tiếp một số dữ liệu trực tiếp vào một ô thì sao?

Bài viết này mô tả cách đưa dữ liệu thời gian thực vào Excel bằng các yêu cầu HTTP

Có một bài viết khác mô tả cách lấy dữ liệu thời gian thực vào Excel bằng cách sử dụng ổ cắm

Với PyXLL tôi có thể làm điều đó. PyXLL là một add-in cho phép bạn viết mã Python và sử dụng kết quả trong Excel. Bạn không chỉ có thể lấy dữ liệu thời gian thực mà còn có thể viết các hàm của riêng mình, trong số những thứ khác, bằng cách sử dụng nhiều thư viện Python có sẵn

PyXLL sử dụng một lớp có nguồn gốc từ RTD, khi được kết hợp với mã Python của riêng bạn, cho phép bạn truyền dữ liệu theo thời gian thực

Trước khi bạn bắt đầu

Tất nhiên, bạn sẽ cần cài đặt Python trên PC của mình để PyXLL sử dụng trong Excel. Tải xuống và cài đặt phiên bản mới nhất từ ​​đây. Tải Python - miễn phí

Khi đã xong, bạn có thể tải PyXLL từ đây. PyXLL, có sẵn trong 30 ngày dùng thử miễn phí, sau đó sẽ tính phí để tiếp tục sử dụng

Dữ liệu theo thời gian thực

Thế giới đang tràn ngập những đề cập đến dữ liệu truyền trực tuyến IoT (Internet of Things) từ các thiết bị như cảm biến cho bạn biết nhiệt độ của nước trong bể cá của bạn, những con bò của bạn đang làm gì

Nếu bạn có luồng dữ liệu từ thiết bị IoT, chắc chắn bạn có thể sử dụng phương pháp sau để đọc và trình bày dữ liệu trong Excel. Nhưng trong bài đăng này, tôi sẽ viết mã cho hai ví dụ, giá của tiền điện tử và một số số ngẫu nhiên từ trình tạo số ngẫu nhiên dựa trên web

API

Để có được những thông tin như vậy, nó có thể được cung cấp bởi cái được gọi là API - giao diện lập trình ứng dụng. Đó là cách yêu cầu và nhận một số dữ liệu từ một chương trình, trang web hoặc một số dịch vụ tương tự khác

Đối với các loại tiền điện tử, CoinCap cung cấp một API đơn giản cung cấp cho bạn thông tin bao gồm giá của loại tiền bạn chỉ định

Nếu tôi muốn nhận giá Bitcoin, tất cả những gì tôi cần làm là truy cập https. //api. đồng xu. io/v2/tài sản/bitcoin

Nếu bạn nhấp vào liên kết đó, thay vì nhìn thấy một trang web được bố trí đẹp mắt, bạn sẽ chỉ thấy một loạt văn bản như thế này

{"data":{"id":"bitcoin","rank":"1","symbol":"BTC","name":"Bitcoin","supply":"18141812.0000000000000000","maxSupply":"21000000.0000000000000000","marketCapUsd":"134720405124.6647178192585068","volumeUsd24Hr":"3323508659.7492937215632559","priceUsd":"7425.9619229140241239","changePercent24Hr":"1.4005161160705637","vwap24Hr":"7370.9732287929146683"},"timestamp":1578185530218}

Đó là bởi vì trang web dự kiến ​​sẽ gửi dữ liệu trở lại một chương trình nên đã định dạng nó thành phản hồi JSON mà chương trình có thể dễ dàng sử dụng. Cái này không dành cho mắt người nên không có nghĩa là trông đẹp. Khi chúng tôi nhận được dữ liệu này, chúng tôi thao tác nó trong mã Python của mình và trả lại bất cứ thứ gì chúng tôi muốn cho Excel, trong trường hợp này là giá

Nếu bạn muốn, bạn cũng có thể sử dụng tất cả các thông tin khác nhưng tôi chỉ muốn giá cho ví dụ này

Vì vậy, bằng cách gọi API CoinCap cho từng loại tiền tệ tôi chỉ định, nó sẽ gửi cho tôi thông tin liên quan đến loại tiền điện tử đó

Nó hoạt động theo cách tương tự đối với trình tạo số ngẫu nhiên. Mã Python của tôi thực hiện cuộc gọi đến trình tạo số ngẫu nhiên tại https. //ngẫu nhiên. org và trang web gửi lại cho tôi một số nguyên ngẫu nhiên

Hãy tự mình thử https. //www. ngẫu nhiên. org/integers/?num=1&min=1&max=99&col=1&base=10&format=plain&rnd=new

Lớp RTD PyXLL

Bằng cách thêm lớp RTD này vào mã của bạn và sửa đổi __thread_func để thực hiện công việc gọi API và xử lý kết quả, chúng tôi nhận được mã của mình để cập nhật giá tiền tệ và số ngẫu nhiên trong thời gian thực

Cập nhật giá tiền điện tử

Cách lấy dữ liệu real-time từ website lên excel

Trình tạo số ngẫu nhiên

Cách lấy dữ liệu real-time từ website lên excel

Gọi các chức năng

Bằng cách xác định một hàm cho cả hai bit mã này thông qua PyXLL, Excel có thể truy cập chúng giống như bất kỳ hàm sổ làm việc nào khác

Để có được giá cho Bitcoin

=coin_price_rtd("bitcoin")

Lưu ý rằng tên tiền tệ phải là chữ thường

Bạn có thể chuyển vào một tham chiếu ô thay vì một chuỗi nếu bạn muốn. g

=coin_price_rtd(LOWER(A1))

Trong đó A1 chứa tên tiền tệ

Đối với các số ngẫu nhiên, hãy sử dụng hàm tiếp theo không yêu cầu bất kỳ đối số nào

=random_rtd()

Đây là cả hai chức năng trong hành động

Cách lấy dữ liệu real-time từ website lên excel

Cách lấy dữ liệu real-time từ website lên excel

Tôi đang nhân các số ngẫu nhiên với một số thập phân để làm cho chúng thú vị hơn và tôi đã thêm một số định dạng có điều kiện để làm cho các số trông hấp dẫn hơn

50% tiền tệ hàng đầu theo giá có màu xanh lục, 50% tiền tệ dưới cùng có màu đỏ. Trong sổ làm việc bạn có thể tải xuống ngay bên dưới, tôi chỉ bao gồm 3 loại tiền tệ, nhưng tôi chắc chắn rằng bạn có thể thêm bất kỳ loại tiền tệ nào khác mà bạn muốn

Đối với các số ngẫu nhiên, bất kỳ số nào lớn hơn trung bình cộng của tất cả các số, có màu xanh lục

Tải xuống Sổ làm việc Excel và Mã Python

Để tính năng này hoạt động, bạn cần cài đặt Python và cài đặt bổ trợ PyXLL như được mô tả ở đầu bài viết này

Sổ làm việc của tôi và mã Python mẫu được cung cấp để tải xuống dưới dạng tệp ZIP. Nhập địa chỉ email của bạn dưới đây để có được những

Nhận Sổ làm việc Excel

Bằng cách gửi địa chỉ email của bạn, bạn đồng ý rằng chúng tôi có thể gửi email cho bạn bản tin Excel của chúng tôi. Bạn có thể hủy đăng kí bất kì lúc nào

Vui lòng nhập địa chỉ email hợp lệ

Sổ làm việc Excel & Mã Python Dữ liệu thời gian thực Excel. khóa kéo


Tóm lược

Nếu bạn biết Python hoặc muốn thử sức mình với nó, PyXLL chắc chắn đáng xem. Và nếu bạn muốn lấy dữ liệu thời gian thực vào Excel thì đây có vẻ là một giải pháp tốt

Sử dụng Python, bạn cũng có thể lấy dữ liệu thời gian thực bằng cách sử dụng ổ cắm và bạn có thể đưa dữ liệu thời gian thực vào Power BI bằng PubNUb