支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


DeepSeek+Power BI实现滚动表格效果SVG

发布日期:2025-03-28 06:56:08 浏览次数: 1661 作者:取个数
推荐语

利用DeepSeek和Power BI打造动态数据展示新体验。

核心内容:
1. DeepSeek+Power BI实现滚动表格效果的SVG技术介绍
2. 动态滚动展示的SVG代码和参数设置
3. 具体数据计算和表格设置的详细步骤

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家
最终效果如下
源数据展示

度量值分享
筛选日期最后一天班次 = CALCULATE(    MAX('班表'[班次名称]),    FILTER(        '班表',        '班表'[日期] = MAX('班表'[日期])    ))
筛选日期最后一天班次时间 = CALCULATE(    MAX('班次'[班次时间]),    FILTER(        '班表',        '班表'[日期] = MAX('班表'[日期])    ))
休息天数 = CALCULATE(COUNTROWS('班表'),FILTER('班表','班表'[班次名称]="休"))
滚动动画SVG代码分享
SVG动态滚动展示cs = VAR RowHeight = 35           // 行高VAR FontSize = 12            // 字体大小VAR TableWidth = 800         // 表格总宽度VAR ColCount = 5             // 列数VAR ColWidth = TableWidth / ColCount  // 列宽度VAR VisibleRows = 5          // 可见行数VAR TotalHeight = (VisibleRows + 1) * RowHeight  // 总高度VAR AnimationDuration = 180  // 固定滚动速度(秒),确保稳定性// 列中心坐标计算(调整为5列)VAR Col1_X = ColWidth * 0 + ColWidth/2VAR Col2_X = ColWidth * 1 + ColWidth/2VAR Col3_X = ColWidth * 2 + ColWidth/2VAR Col4_X = ColWidth * 3 + ColWidth/2VAR Col5_X = ColWidth * 4 + ColWidth/2// 自定义颜色VAR HeaderBackgroundColor = "#41A4FF"  // 表头背景色VAR TextColor = "black"  // 文字颜色// 准备数据,计算必要的列VAR Data = ADDCOLUMNS(    SUMMARIZE(        '班表',  // 汇总数据表        '班表'[坐席姓名],  // 坐席姓名        '班表'[队列],     // 队列        "休息天数", [休息天数],  // 计算休息天数(假设已存在或者可以计算)        "最后一日班次", [筛选日期最后一天班次],  // 计算最后一日班次        "最后一日班次时间", [筛选日期最后一天班次时间]  // 计算最后一日班次时间    ),    "RowIndex", RANKX(ALL('班表'), '班表'[坐席姓名], , ASC, Dense)  // 为每一行分配排名)// 修改 RowCount 计算,确保与实际显示行数一致VAR ValidDataRows = FILTER(Data, NOT(ISBLANK([最后一日班次])) && NOT(ISBLANK([最后一日班次时间])))VAR RowCount = COUNTROWS(ValidDataRows)  // 使用过滤后的实际行数// 数据为空时的提示VAR EmptyMessage = IF(    RowCount = 0,    "<text x='" & TableWidth/2 & "' y='" & TotalHeight/2 & "' font-size='" & FontSize & "' fill='gray' dominant-baseline='middle' text-anchor='middle'>暂无数据</text>",    "")// 表头设计VAR HeaderY = RowHeight/2 + FontSize/3  // 精确垂直居中公式VAR Header = "<text x='0' y='" & HeaderY & "' font-size='" & FontSize & "' fill='" & TextColor & "' font-weight='bold' dominant-baseline='middle' text-anchor='middle'>     <tspan x='" & Col1_X & "'>坐席姓名</tspan>        <tspan x='" & Col2_X & "'>队列</tspan>        <tspan x='" & Col3_X & "'>休息天数</tspan>          <tspan x='" & Col4_X & "'>最后一日班次</tspan>         <tspan x='" & Col5_X & "'>最后一日班次时间</tspan></text>" // 数据行模板(同步垂直居中,修正数据引用)VAR DataRows = CONCATENATEX(    ValidDataRows,    VAR YPosition = [RowIndex] * RowHeight  // 行的位置    RETURN "<g transform='translate(0," & YPosition & ")'>                <text y='" & HeaderY & "' font-size='" & FontSize & "' fill='" & TextColor & "' dominant-baseline='middle' text-anchor='middle'>                        <tspan x='" & Col1_X & "'>" & [坐席姓名] & "</tspan>            <tspan x='" & Col2_X & "'>" & [队列] & "</tspan>            <tspan x='" & Col3_X & "'>" & [休息天数] & "</tspan>            <tspan x='" & Col4_X & "'>" & [最后一日班次] & "</tspan>            <tspan x='" & Col5_X & "'>" & [最后一日班次时间] & "</tspan>        </text>        </g>",     UNICHAR(10))// 动画逻辑(无缝滚动)VAR AnimatedContent = "<g transform='translate(0," & RowHeight & ")'>        <animateTransform         attributeName='transform'         type='translate'         from='0 0' to='0 -" & (RowCount * RowHeight) & "'         dur='" & IF(RowCount <= VisibleRows, 0, AnimationDuration) & "s'         repeatCount='indefinite'/> " & DataRows & DataRows & "</g>" // 动画效果:无限滚动// 最终的SVG结构RETURN "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'     width='" & TableWidth & "'     height='" & TotalHeight & "'     viewBox='0 0 " & TableWidth & " " & TotalHeight & "'     style='background:transparent;font-family:Segoe UI'>    <!-- 固定标题栏 -->        <rect width='100%' height='" & RowHeight & "' fill='" & HeaderBackgroundColor & "' rx='3'/> " & Header & "    <!-- 滚动遮罩 -->        <mask id='scrollMask'>                <rect width='100%' height='" & (TotalHeight - RowHeight) & "' y='" & RowHeight & "' fill='white'/>        </mask>    <!-- 滚动内容 -->        <g mask='url(#scrollMask)'>                " & AnimatedContent & "        </g>    <!-- 数据为空时的提示 -->        " & EmptyMessage & "    <!-- 装饰性边框 -->        <rect width='100%' height='100%' fill='none' stroke='#555' stroke-width='1'/></svg>"
整段代码利用DeepSeek引导式提问获取,自己使用可以简单对代码中部分参数进行调整即可正常显示~

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询