前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Power BI表格高级交互:分页浏览

Power BI表格高级交互:分页浏览

作者头像
wujunmin
发布于 2025-04-02 02:48:46
发布于 2025-04-02 02:48:46
6000
代码可运行
举报
文章被收录于专栏:wujunminwujunmin
运行总次数:0
代码可运行

当行数较多时,Power BI内置表格只能滚动条向下浏览。借助HTML,我们可以实现分页浏览。下图右下角显示了页码,点击任意数字即可跳转:

实现过程仅需一个度量值,将度量值中的维度、指标替换为你模型中的数据,然后放入HTML Content视觉对象使用。度量值默认一页显示10行,你也可以进行自定义。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HTML表格.分页 = 
VAR t =
    ADDCOLUMNS (
        VALUES ( '表'[店铺名称] ),
        "销售业绩", FORMAT ( [M.销售业绩], "#,#" ),
        "销售折扣", FORMAT ( [M.销售折扣], "0.00" ),
        "连带率", FORMAT ( [M.客单量], "0.00" ),
        "客单价", FORMAT ( [M.客单价], "#,#" )
    )
VAR HTML_Text =
    CONCATENATEX (
        t,
        "<tr><td style='text-align:left'>" & [店铺名称] & "</td><td style='text-align:right'>" & [销售业绩] & "</td><td style='text-align:right'>" & [销售折扣] & "</td><td style='text-align:right'>" & [连带率] & "</td><td style='text-align:right'>" & [客单价] & "</td></tr>",
        ,[M.销售业绩],DESC
    )
RETURN "
--公众号:wujunmin
<head>
<style>
table {
    font-family: Arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
}
th {
    background-color: #f2f2f2;
    text-align: left;
    padding: 8px;
}
td {
    padding: 8px;
    border-bottom: 1px solid #ddd;
}
th:nth-child(1) {
    text-align: left;
}
th:nth-child(n+2) {
    text-align: right;
}
.pagination {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}
.pagination a {
    color: black;
    padding: 6px 12px;
    text-decoration: none;
    border: 1px solid #ddd;
    margin: 0 4px;
}
.pagination a.active {
    background-color: #4CAF50;
    color: white;
    border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {
    background-color: #ddd;
}
</style>
</head>
<body>
<table id='pagedTable'>
  <thead>
    <tr>
      <th>店铺名称</th>
      <th>销售业绩</th>
      <th>销售折扣</th>
      <th>连带率</th>
      <th>客单价</th>
    </tr>
  </thead>
  <tbody>" & 
HTML_Text & "
  </tbody>
</table>
<div class='pagination' id='pagination'></div>
<script>
function paginateTable() {
    const table = document.getElementById('pagedTable');
    const rows = table.querySelectorAll('tbody tr');
    const rowsPerPage = 10;
    const pageCount = Math.ceil(rows.length / rowsPerPage);
    const paginationDiv = document.getElementById('pagination');
    
    let currentPage = 1;
    
    function showPage(page) {
        const start = (page - 1) * rowsPerPage;
        const end = start + rowsPerPage;
        
        rows.forEach((row, index) => {
            row.style.display = (index >= start && index < end) ? '' : 'none';
        });
        
        updatePaginationButtons(page);
    }
    
    function updatePaginationButtons(page) {
        paginationDiv.innerHTML = '';
        currentPage = page;
        
        if (page > 1) {
            const prevLink = document.createElement('a');
            prevLink.href = '#';
            prevLink.innerHTML = '&laquo;';
            prevLink.addEventListener('click', (e) => {
                e.preventDefault();
                showPage(page - 1);
            });
            paginationDiv.appendChild(prevLink);
        }
        
        for (let i = 1; i <= pageCount; i++) {
            const pageLink = document.createElement('a');
            pageLink.href = '#';
            pageLink.textContent = i;
            if (i === page) {
                pageLink.className = 'active';
            }
            pageLink.addEventListener('click', (e) => {
                e.preventDefault();
                showPage(i);
            });
            paginationDiv.appendChild(pageLink);
        }
        
        if (page < pageCount) {
            const nextLink = document.createElement('a');
            nextLink.href = '#';
            nextLink.innerHTML = '&raquo;';
            nextLink.addEventListener('click', (e) => {
                e.preventDefault();
                showPage(page + 1);
            });
            paginationDiv.appendChild(nextLink);
        }
    }
    
    showPage(1);
}
setTimeout(paginateTable, 100);
</script>
</body>"
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Power BI数据+工作计划推送到手机
现在依据数据好坏为门店制定下一步工作计划。例如,点击宁波市江南路这一行,弹出对话框:
wujunmin
2025/04/30
540
Power BI数据+工作计划推送到手机
Power BI 卡片图平滑轮播
这里使用DAX+HTML实现,轮播原理为CSS动画,假设展示三个指标,度量值如下:
wujunmin
2025/04/29
540
Power BI 卡片图平滑轮播
Power BI 表格添加视频
Power BI内置的表格不支持加载视频,这里使用了HTML,准备好产品对应的视频URL,把以下度量值放入HTML Content就完工。
wujunmin
2025/04/13
600
Power BI 表格添加视频
Power BI 豪华动态业绩杜邦分析
杜邦分析法(DuPont analysis)是一种分析企业财务状况的方法,得名于美国杜邦公司。该思路可以应用于销售业绩分析。如下图模拟杜邦分析图对门店零售业务的业绩进行分解(参考:黄成明老师的《数据化管理》)
wujunmin
2025/03/18
960
Power BI 豪华动态业绩杜邦分析
django实战(一)--dango自带的分页(极简)
技术总结:最基本的是Paginator里面的一些值(当然此处我并没有去尝试其他的,有兴趣的可以去搜下,也挺简单的)。然后其中的一个就是前端pn值如何通过url传值给后端,注意标蓝的地方。
西西嘛呦
2020/08/26
5530
html打印表格每页都有的表头和打印分页
本文转载:http://www.cnblogs.com/RitchieChen/archive/2008/07/30/1256829.html
跟着阿笨一起玩NET
2018/09/19
4.1K0
《数据采集与分析》综合模拟测验
1、如果要使用Requests库爬取网址为http://www.jou.edu.cn/的网页内容,请按如下要求写出主要的操作语句:
Francek Chen
2025/01/23
570
《数据采集与分析》综合模拟测验
基于Springmvc+Mybatis+Spring+Freemarker的物理分页插件(超级简单)
版权声明:本文为博主原创文章,未经博主允许不得转载。 1.先上效果图(不怎么好看,主要看功能) 2.实现(Maven项目) 2.1配置pom.xml文件 <!-- 物理分页 -->
DencyCheng
2018/11/05
5500
GridView自定义分页导航
<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " StfCmpManager.aspx.cs "  Inherits = " StfCmpManager " %>
Java架构师必看
2021/03/22
7730
GridView自定义分页导航
SUI分页组件和avalon搞定ajax无刷新分页
<div ms-controller="main"> <h2 class="pagination-centered">{{ title }}</h2> <form method="get" action="" class="sui-form" style="margin-bottom:5px;"> 重量:<input class="input-medium" type="text" name="weight" value="@ViewBag.weight" id="weigh
阿炬
2018/05/11
1.7K0
Power BI 环形图条形图组合
度量值中的前五个var换成你模型中的数据即可复用。把度量值扔给DeepSeek可以随意修改样式:
wujunmin
2025/04/10
800
Power BI 环形图条形图组合
PHP+mysql数据库简单分页实例-sql分页
前几天冷月写了一篇博文《php基础编程-php连接mysql数据库-mysqli的简单使用》,很多小伙伴在学习后都知道了php与mysql数据库的连接,今天冷月分享一个简单的分页实例
学长冷月
2020/08/02
2.4K0
Spring学习笔记(十四)——ssm整合mybitis的逆向工程和分页插件
mybatis generator http://www.mybatis.org/generator/
不愿意做鱼的小鲸鱼
2022/09/26
2670
Spring学习笔记(十四)——ssm整合mybitis的逆向工程和分页插件
JavaEE + BootStrap 实现分页逻辑
Java EE + BootStrap 实现简单分页逻辑 一、项目准备 二、数据库准备 三、视图界面编写 四、后台处理 4.1 封装 BaseDao 4.2 对应的学生实体类 4.3 分页后台逻辑 GetAllServlet 五、运行效果 一、项目准备 准备一张单表,以学生为例,需要如下列,id,sname,sage,sgender index.jsp 用于跳转页面,second.jsp 用于显示分页查询的数据 getAllServlet 用于查询分页数据,并返回给前端 二、数据库准备 我使用的 mysql
Gorit
2021/12/08
9450
JavaEE + BootStrap 实现分页逻辑
spring mvc+ajax分页[通俗易懂]
分页大致思路:页面每次把当前页传到后台并获得从后台传过来的json数据,解析后布局到这个页面上。
全栈程序员站长
2022/07/10
8270
spring mvc+ajax分页[通俗易懂]
java实现HTML转PDF
windows 自带有这个文件 。但是linux 要自己去下载了 如果需要可以联系博主 (千万不要把windows s上的这个文件直接copy 到linux 系统上去哦)
斯文的程序
2019/11/07
15.4K4
java实现HTML转PDF
实现表格行的拖拽以及分页
在做一些后台管理系统时,表格的数据信息展示是很常见的需求,而对应的都是一些增删改查的操作
itclanCoder
2021/12/06
3.1K0
实现表格行的拖拽以及分页
如何从 0 到 1 实现一个支持排序、查找、分页的表格组件(React版)
我们每天有可能都在与数据列表打交道,比如列表的分页、查找列表(搜索查询)、按照指定的列升序降序排列这些需求,你可能再尝试使用 react-table or Ant Design table 这样的组件完成这些需求,但通常这些库与你特定案例的设计和需求不匹配,并且具有许多你不需要的功能,有时,自己动手可能会更好些,以便在功能和设计方面具有完全的灵活性。今天小编看到一位国外大佬写的关于此主题的文章,在此分享给大家,本篇文章并不是完全按照原作者的文章进行翻译,加上了小编的一些理解,希望对大家有所帮助。
前端达人
2021/11/16
2.7K0
121《Console Importer》在Chrome直接使用npm军火库, 在控制台动态展示一张猫猫图
$i('dayjs') const currentTime = dayjs(Date.now()).format('YYYY-MM-DD HH:mm:ss')
zhaoolee
2024/03/19
2850
121《Console Importer》在Chrome直接使用npm军火库, 在控制台动态展示一张猫猫图
Flask 框架实现自定义分页
手撸的表格分页: Flask框架下的分页,我研究了很久,自带的分页方法不稳定,还不如自己手撸的好使.
王瑞MVP
2022/12/28
5160
推荐阅读
相关推荐
Power BI数据+工作计划推送到手机
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验