Excel天气查询插件开发指南(★)
前置准备
-
开发环境
- 安装 Visual Studio(推荐 Visual Studio 2022 Community 版本),并确保安装了 Office 开发 workload(安装时勾选 “Office/SharePoint 开发”)。
- 目标计算机需安装 Excel 2013 及以上版本。
-
引用组件代码中用到了 IE 控件和 HTML 解析,需添加以下引用:
Microsoft.mshtml(右键项目→“添加”→“引用”→“COM”→勾选 “Microsoft HTML Object Library”)。SHDocVw(COM 引用中勾选 “Microsoft Internet Controls”,用于控制 IE 浏览器)。
步骤 1:创建 VSTO 项目
- 打开 Visual Studio,点击 “创建新项目”。
- 在模板中搜索 “Excel VSTO Add-in”(如 “Excel 2019 和 2022 VSTO 加载项”),选择后命名项目(例如 “WeatherScraperAddIn”),点击 “创建”。
步骤 2:替换代码
- 在解决方案资源管理器中,找到
ThisAddIn.cs(默认位于 “项目→Properties” 下,或直接在代码窗口中)。 - 删除默认生成的代码,将本文开头的 C# 代码完整复制粘贴到
ThisAddIn.cs中。
步骤 3:调试运行
- 按
F5启动调试,Visual Studio 会自动打开 Excel(可能需要等待加载)。 - 在打开的 Excel 中,顶部菜单栏会新增一个 “天气工具” 选项卡。
步骤 4:使用插件功能
- 点击 “天气工具” 选项卡,点击 “抓取城市天气” 按钮。
- 在弹出的输入框中,输入要查询的城市(例如 “南京”),点击 “确定”。
- 程序会自动抓取天气数据,并在 Excel 中创建名为 “天气数据” 的工作表,数据格式如下:
- 包含 “城市、日期、星期、天气状况、气温范围、湿度、空气质量、抓取时间、天气查询 URL” 列。
- “天气查询 URL” 列是可点击的超链接,点击可直接访问对应城市的天气页面。
步骤 5:部署使用(可选)
若需在其他电脑上使用,需生成安装包:
- 右键项目→“属性”→“发布”,设置发布路径(如本地文件夹或网络路径)。
- 点击 “发布”,生成
.vsto安装文件。 - 在目标电脑上运行
.vsto文件,按提示安装(需启用 Office 宏 / 加载项信任)。
注意事项
- 网页结构变更:代码依赖目标网站(
weaoo.com)的 HTML 结构,若网站更新,可能需要修改解析逻辑(例如调整getElementsByClassName的参数)。 - IE 浏览器依赖:代码使用 IE 控件抓取数据,若电脑未安装 IE 或 IE 设置限制自动化,可能无法运行(可尝试改用 Edge 或其他浏览器控件替代)。
- 网络权限:确保电脑可访问目标网站,否则会提示 “页面加载超时”。
按照以上步骤,即可完成插件的开发、调试和使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Excel;
using System.Windows.Forms;
using mshtml;
using System.Threading;namespace WeatherScraperAddIn
{public partial class ThisAddIn{private void ThisAddIn_Startup(object sender, System.EventArgs e){// 创建自定义功能区按钮CreateRibbonButton();}private void ThisAddIn_Shutdown(object sender, System.EventArgs e){}#region 功能区按钮创建private void CreateRibbonButton(){var ribbonXml = @"
<customUI xmlns='http://schemas.mi