如何在 SharePoint Excel 中免配置本地 DSN 刷新 Databricks 查询?
结论
可以在 Excel 工作簿的 ODBC 连接中使用 DSN-less connection string,再通过 VBA 刷新连接。这样不必在每台电脑上单独创建 DSN,但每台电脑仍需安装兼容的 ODBC 驱动,也要处理认证、网络访问和驱动配置。
如果要让 SharePoint 中的 50 多个文件由不同用户或自动化流程稳定刷新,集中式刷新通常更合适。可以让受管理的服务或运行环境访问 Databricks,再把刷新结果提供给用户。具体方案要看现有的 Excel 连接类型,以及组织支持哪些刷新平台。
DSN-less 连接能解决什么
DSN 是保存在本机的一组 ODBC 连接配置。DSN-less connection string 可以将驱动名称和连接参数直接写入 Excel 连接,因此每台电脑不必预先创建同名 DSN。也可以用 VBA 在刷新前设置工作簿连接的 connection string。
下面是结构示意,并非可直接使用的 Databricks 连接串。驱动名称、参数名和必填项应以实际安装的 Databricks ODBC 驱动文档及配置为准:
ODBC;DRIVER={<已安装的驱动名称>};<连接参数>=<值>;...
如果工作簿使用 Excel 的 ODBCConnection,可以在 VBA 中更新现有连接并刷新:
Sub RefreshDatabricksConnection()
Dim conn As ODBCConnection
Set conn = ThisWorkbook.Connections("DatabricksConnection").ODBCConnection
conn.Connection = "ODBC;DRIVER={<驱动名称>};<连接参数>=<值>;..."
conn.Refresh
End Sub
将 DatabricksConnection 替换为工作簿中的实际连接名称,并按驱动要求填写连接参数。这段代码演示了设置和刷新连接的方式;具体属性和连接串需与工作簿当前使用的连接类型及驱动相匹配。
使用前需要处理的限制
- 每台运行 Excel 刷新查询的电脑都要安装兼容的 ODBC 驱动,且 Excel 与驱动的位数要匹配。
- 每位用户仍需具备 Databricks 认证凭据、访问权限和网络连通性。DSN-less 连接只省去了本机的 DSN 配置。
- 不要在 VBA 中硬编码密码、访问令牌等敏感凭据,也不要将它们保存在可共享的工作簿中。应使用组织认可的凭据管理和认证方式。
- 如果文件同步到电脑后由用户在本地 Excel 中打开,VBA 和 ODBC 刷新仍在该电脑上运行。文件放在 SharePoint 不会自动提供驱动或完成本机配置。
- 如果需要在无人值守环境或 Excel 网页版中刷新,应先确认目标平台是否支持该连接类型和刷新方式。桌面 Excel 的 VBA/ODBC 方案不一定能直接用于云端刷新。
更适合多用户的刷新方式
如果每位用户都要在自己的电脑上刷新,DSN-less 连接可以减少逐台创建 DSN 的维护工作,但驱动、认证和客户端差异仍需管理。部署前可以用一份副本,在目标用户的环境中检查驱动、连接参数和权限。
如果刷新由定时任务或集中流程执行,可以考虑在受管理的运行环境中连接 Databricks、生成数据,再将结果发布到 SharePoint 供用户读取。这样,ODBC 驱动和 Databricks 凭据由受控环境管理,无需分发到所有用户电脑。具体实现应根据组织支持的服务、Excel 文件的使用方式和数据更新频率来选定。
备注:内容仅供参考。
