筑业小筑老师铂金专家
2026-06-15 09:35:42
要自动填写施工日记中的天气信息,可以通过以下3种方法实现,推荐使用Python API方案:
### 一、推荐方案:Python +天气API(完整示例)
```python
import requests
import pandas as pd
from datetime import datetime
# 配置参数
API_KEY = "your_openweather_api_key" # 替换为实际API密钥
CITY = "Beijing,CN"
EXCEL_PATH = "施工日记.xlsx"
def get_weather():
"""获取实时天气数据"""
url = f"http://api.openweathermap.org/data/2.5/weather?q={CITY}&appid={API_KEY}&units=metric"
try:
response = requests.get(url, timeout=10)
data = response.json()
weather = {
"日期": datetime.now().strftime("%Y-%m-%d"),
"天气状况": data['weather'][0]['description'],
"温度(℃)": data['main']['temp'],
"湿度(%)": data['main']['humidity'],
"风速(m/s)": data['wind']['speed']
}
return weather
except Exception as e:
print(f"获取天气失败: {str(e)}")
return None
def update_diary(new_data):
"""更新Excel施工日记"""
try:
# 读取现有数据 df = pd.read_excel(EXCEL_PATH)
# 添加新行 new_row = pd.DataFrame([new_data])
df = pd.concat([df, new_row], ignore_index=True)
# 保存文件 df.to_excel(EXCEL_PATH, index=False)
print("施工日记更新成功!")
return True except Exception as e:
print(f"更新失败: {str(e)}")
return False
if __name__ == "__main__":
# 获取天气并更新日记 weather_data = get_weather()
if weather_data:
update_diary(weather_data)
```
### 二、三种实现方式对比
| 方法 | 优点 | 缺点 | 适用场景 |
|------|------|------|----------|
| **Python + API** | 全自动实时数据
可定制字段
支持历史记录 | 需编程基础
需API密钥 | 企业级应用
长期项目 |
| **Excel网络查询** | 无需编程
直接集成 | 功能有限
需手动刷新 | 简单需求
临时使用 |
| **气象局数据导入** | 官方权威数据
支持历史天气 | 非实时
格式转换复杂 | 合规要求高的项目 |
### 三、详细操作指南
**1. Python方案步骤**
1. 注册OpenWeather账号获取[免费API Key](https://home.openweathermap.org/api_keys)
2. 安装依赖库:`pip install pandas openpyxl requests`
3. 修改代码中的:
- `API_KEY`:替换为你的密钥 - `CITY`:格式为"城市名,国家代码"(如"Shanghai,CN")
- `EXCEL_PATH`:施工日记Excel路径
4. 设置Windows任务计划/Linux Cron定时执行**2. Excel自动更新方案**
```excel
1. 新建Excel → 数据 → 获取数据 → 自其他源 → 自网站
2. 输入天气API URL:
= "http://api.openweathermap.org/data/2.5/weather?q=Beijing,CN&appid=你的密钥&units=metric"
3. 选择JSON → 转换数据4. 提取关键字段:
- 日期:= DateTime.LocalNow()
- 天气:= record[weather][0][description]
- 温度:= record[main][temp]
5. 关闭并上载至现有工作表
```
**3. 气象局数据导入**
1. 访问[中国气象数据网](http://data.cma.cn/)
2. 申请历史气象数据
3. 下载CSV格式数据
4. 使用Excel Power Query:
```excel数据 → 获取数据 → 从文件 → 从CSV
→ 选择日期/天气列 → 合并查询施工日记
```
### 四、增强功能建议
1. **异常处理**:添加天气API备用源(如和风天气)
2. **历史天气**:使用`history`端点获取过去日期天气
3. **自动提醒**:集成邮件/SMTP在获取失败时报警
4. **多地点支持**:添加工程GPS坐标定位
```python
# 多地点配置示例
LOCATIONS = {
"工地A": ("39.9042", "116.4074"),
"工地B": ("31.2304", "121.4737")
}
```
### 五、注意事项
1. **API调用限制**:免费版OpenWeather60次/分钟
2. **数据安全**:避免在客户端代码暴露API密钥(企业级建议用后端服务)
3. **天气精度**:城市级精度约±3公里,特殊项目需购买网格天气数据
4. **合规要求**:涉及国家秘密工程需使用内部气象系统
> 推荐优先使用Python方案,每天通过Windows任务计划定时执行(如早上7点),可完全实现无人值守自动填报。对于无编程条件的用户,可使用Excel内置的Web查询功能手动刷新数据。
点赞0
回复 0
举报