Chào các bác, hôm nay em muốn chia sẻ một chút về cách em tích hợp Python vào Excel để tự động hóa việc lấy dữ liệu thời tiết. Công việc của em đôi khi cần cập nhật thông tin thời tiết để đưa vào báo cáo, mà cứ vào web tra rồi copy-paste thì mất thời gian quá.
Em tìm hiểu thì thấy có thể dùng Python để gọi API thời tiết (ví dụ OpenWeatherMap) rồi đưa dữ liệu trực tiếp vào Excel. Nghe thì có vẻ phức tạp nhưng thực ra khá đơn giản với thư viện requests và một chút xử lý dữ liệu với pandas.
Cách làm cơ bản là:
- Sử dụng hàm
=PY()trong Excel (nếu bạn đã cài đặt Python in Excel). - Viết một đoạn code Python nhỏ để gọi API, lấy dữ liệu JSON trả về.
- Phân tích dữ liệu JSON đó, có thể dùng
pandas.read_jsonhoặc xử lý thủ công. - Trả kết quả về một ô hoặc một mảng ô trong Excel.
Ví dụ, để lấy nhiệt độ hiện tại cho Hà Nội, em có thể dùng đoạn code tương tự như sau:
import requests
import pandas as pd
api_key = 'YOUR_API_KEY'
city = 'Hanoi'
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=vi"
response = requests.get(url)
data = response.json()
if response.status_code == 200:
temperature = data['main']['temp']
description = data['weather'][0]['description']
return f"Nhiệt độ: {temperature}°C, Tình trạng: {description}"
else:
return f"Lỗi: {response.status_code}"
Sau đó, em sẽ truyền kết quả trả về vào ô Excel. Cách này giúp báo cáo của em luôn được cập nhật thông tin thời tiết mới nhất mà không cần thao tác thủ công.
Không biết có bác nào đã thử cách này hoặc có ý tưởng nào hay ho hơn để tích hợp Python với Excel cho các tác vụ tự động hóa khác không? Chia sẻ cho em học hỏi với ạ!