如何从Excel数据透视表中提取MDX或SQL查询语句
Excel获取发送给OLAP服务的MDX/SQL查询语句的方法
方法1:直接从连接属性读取(最简单无额外工具)
- 操作步骤:打开目标Excel文件,点击顶部数据选项卡,选择「查询和连接」打开对应面板
- 右键点击你用于访问OLAP服务的连接,选择「属性」,在弹出窗口切换到定义标签页
- 「命令文本」输入框中存储的就是Excel生成的对应查询语句,直接复制即可使用
- 如果是VBA场景,可以直接执行以下代码输出查询内容:
Debug.Print ThisWorkbook.Connections("替换为你的连接名称").OLEDBConnection.CommandText
方法2:OLAP服务端捕获(适用于有服务端权限的场景)
- 如果你使用的是微软SSAS(SQL Server Analysis Services)作为OLAP服务,且拥有实例管理员权限,可以打开SQL Server Profiler新建跟踪
- 筛选客户端为Excel的请求,触发Excel端数据刷新后,就能在跟踪日志中看到完整的MDX/SQL查询内容
方法3:本地抓包捕获(通用无权限要求)
- 安装本地抓包工具后,筛选OLAP服务对应的通信端口(SSAS默认端口为2383,其他OLAP服务按实际配置调整)
- 触发Excel端数据刷新操作,从捕获的请求报文中提取查询内容即可
- 注意:如果OLAP连接开启了SSL加密,需要在抓包工具中配置对应SSL证书才能解密查看明文内容
方法4:OLAP透视表专用技巧
- 如果你的数据加载在OLAP数据透视表中,选中透视表任意单元格后点击顶部数据透视表分析选项卡
- 选择「OLAP工具」下拉菜单中的「转换为公式」,转换后可以从单元格公式中获取对应MDX查询片段
内容的提问来源于stack exchange,提问作者Jáchym
相关产品推荐
相关产品推荐

