每周一个报表小技巧:如何在报表中引入数据筛选功能
每周一个报表小技巧:如何在报表中引入数据筛选功能
前言篇摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
(资料图片)
在当今信息爆炸的时代,面对海量的数据,我们常常需要从中提取有价值的信息,做出更好的决策。而数据筛选,正是一种可以帮助我们在众多信息中快速找到所需的内容的方法。通过使用数据筛选工具,可以轻松地筛选出特定条件下的数据,对数据进行过滤和排序以便更好地分析和认识数据。数据筛选不仅是一种有效管理大量信息的手段,也是现代数据处理技术的核心。在大数据时代,了解和熟练掌握数据筛选技巧将有助于帮助更好地理解并使用所拥有的数据资源。今天小编就为大家介绍如何使用JavaScript在报表中引入数据筛选的功能。
本文使用软件Visual Studio Code(以下简称“VSCode”)作为编程环境,请您以管理员身份运行它。
本文目录:
1.Demo介绍篇
2.代码篇:
2.1创建工程文件并引入资源
2.2引入JS文件
2.3引入CSS文件
2.4引入Html文件
2.5运行代码
3.更多资源篇
3.1完整代码资源
3.2更多表格插件Demo
1.Demo介绍篇上图是表格数据筛选Demo的运行页面,页面中一共有五列数据,分别是销售员姓名、出生日期、销售区域、该销售员的销售总金额、销售月金额和销售比例,每列下包含10行数据信息。
现有如下的两个需求:
想要查看销售区域是North的销售员信息和销售量情况。只想在页面上根据年龄筛选数据。解决方法:1.点击Region表格的下拉框,选择North选项,再点击确定,查询出来的数据就是只包含North的信息了。
2.只选择右边选项栏中的Birth(出生日期)勾选框,这样就只能筛选出生日期的信息了。
以上就是对于表格筛选功能的简单介绍,下面介绍如何使使用JavaScript编写这个Demo。
2.代码篇2.1创建工程文件并引入资源第一步在文件管理器中创建一个空白的文件夹作为工程并用VSCode打开。
第二步在工程中新建两个文件夹用来存放JS文件和CSS文件。
第三步引入需要的JS文件和CSS文件。(完整的代码在更多资源的源码链接中)。
至此已经完成了创建工程并引入资源的步骤,下面介绍JS的编写。
2.2引入JS文件第一步在JS文件夹中新建一个.JS文件,名称任意起即可。
第二步在JS文件中引入需要的JavaScript方法:
1.设置页面中需要的数据和初始化方法。
//设置数据
var salesData = [["SalesPers", "Birth", "Region", "SaleAmt", "ComPct", "ComAmt"],["Joe", new Date("2000/01/23"), "North", 260, 0.1, 26],["Robert", new Date("1988/08/21"), "South", 660, 0.15, 99],["Michelle", new Date("1995/08/03"), "East", 940, 0.15, 141],["Erich", new Date("1994/05/23"), "West", 410, 0.12, 49.2],["Dafna", new Date("1992/07/21"), "North", 800, 0.15, 120],["Rob", new Date("1995/11/03"), "South", 900, 0.15, 135],["Jonason", new Date("1987/02/11"), "West", 300, 0.17, 110],["Enana", new Date("1997/04/01"), "West", 310, 0.16, 99.2],["Dania", new Date("1997/02/15"), "North", 500, 0.10, 76],["Robin", new Date("1991/12/28"), "East", 450, 0.18, 35]];//页面加载window.onload = function () {tableColumnsContainer = _getElementById("tableColumnsContainer");//设置var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 1});//初始化方法initSpread(spread);};
2.编辑initSpread方法:
(1):添加数据筛选的条件。
var sheet = spread.getSheet(0);sheet.suspendPaint();//设置表格是否可以溢出sheet.options.allowCellOverflow = true;sheet.name("FilterDialog");sheet.setArray(1, 1, salesData);//添加数据筛选var filter = new spreadNS.Filter.HideRowFilter(new spreadNS.Range(2, 1, salesData.length - 1, salesData[0].length));sheet.rowFilter(filter);//选择想要筛选的数据prepareFilterItems(sheet, salesData[0]);sheet.defaults.rowHeight = 28;sheet.setColumnWidth(1, 110);sheet.setColumnWidth(2, 80);sheet.setColumnWidth(3, 100);sheet.setColumnWidth(4, 80);sheet.setColumnWidth(5, 80);sheet.setColumnWidth(6, 80);sheet.getRange(2, 2, 10, 1).formatter("yyyy/mm/dd");sheet.resumePaint();
(2)选择筛选数据选项的方法。
//选择想要展示的数据筛选项function prepareFilterItems(sheet, headers) {var items = [];var filter = sheet.rowFilter(),range = filter.range,startColumn = range.col;//循环遍历想要获取的数据for (var c = 0, length = headers.length; c < length; c++) {var name = headers[c];items.push("");}tableColumnsContainer.innerHTML = items.join("");var nodeList = tableColumnsContainer.querySelectorAll("input[type="checkbox"]");checkBoxes = [];for (var i = 0, count = nodeList.length; i < count; i++) {var element = nodeList[i];checkBoxes.push(element);//添加监听事件element.addEventListener("change", function () {var index = +this.dataset.index; // +this.getAttribute("data-index");//判断是否显示筛选条件和筛选后的数据信息if (filter) {filter.filterButtonVisible(index, this.checked);}});}}
(3)显示所有筛选条件和隐藏所有筛选条件的方法。
//显示筛选条件
_getElementById("showAll").addEventListener("click",function () {if (filter) {filter.filterButtonVisible(true);checkBoxes.forEach(function(item) {item.checked = true;});}});
//隐藏筛选条件
_getElementById("hideAll").addEventListener("click",function () {if (filter) {filter.filterButtonVisible(false);checkBoxes.forEach(function(item) {item.checked = false;});}});
(4)获取元素的方法。
//获取元素的方法
function _getElementById(id){return document.getElementById(id);}
至此已经完成了JS文件的引入,下面介绍CSS的编写。
2.3引入CSS文件第一步在CSS文件夹中新建一个.CSS文件,名称任意起即可。
第二步编写的CSS样式:
.sample-tutorial {position: relative;height: 100%;overflow: hidden;}.sample-spreadsheets {width: calc(100% - 280px);height: 100%;overflow: hidden;float: left;}.options-container {float: right;width: 280px;padding: 12px;height: 100%;box-sizing: border-box;background: #fbfbfb;overflow: auto;}.option-group {margin-bottom: 6px;}.option-group input[type="checkbox"] {margin-right: 6px;}body {position: absolute;top: 0;bottom: 0;left: 0;right: 0;}#ss {height: 98vh;float: left;width: 85%;/* left: auto; */}
至此已经完成了CSS文件的引入,下面介绍Html文件的编写。
2.4引入Html文件第一步在工程文件中创建一个.Html文件,名称任意起即可。
第二步在Html文件中导入JS文件资源,主要用到的是迷你图组件(点击这里可以了解其他组件资源)。
数据筛选 <script type="text/javascript" src="./js/gc.spread.sheets.all.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.resources.zh.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.shapes.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.pivot.pivottables.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.charts.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.barcode.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.print.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.pdf.15.1.0.min.js"></script><script type="text/javascript" src="./js/gc.spread.sheets.tablesheet.15.1.0.min.js"></script>
第三步编写表格和筛选栏的格式。
第四步引入JS文件和CSS文件(注意:SRC和HREF中的文件名必须和第二步与第三步中起的文件名一致,否则会导致引入失败)。
<script src="js/rowFilter.js" type="text/javascript"></script>
至此已经完成了Html文件的引入。
2.5运行代码在运行前需要下载并安装一个插件:Live Server。
(Live Server插件)
安装完插件后需要重启VSCode软件,然后在Html文件中右键点击Open With The Live Server(以浏览器打开)便可运行。
3.更多资源篇3.1完整代码资源https://github.com/GrapeCityXA/SpreadJS-rowFilter/tree/main (Github)
https://gitee.com/GrapeCity/spread-js-row-filter (Gitee)
3.2更多表格插件Demo除了JavaScript的使用,还可以在流行的框架如Vue、React中引入数据筛选功能,不仅如此,还可实现许多花样操作,如数据绑定和单元格透视等,让表格更具交互性和易用性。
标签:
- 黄山提升政府采购透明度 助力实体经济持续健康稳定发展
- 1-2月黄山新签“双招双引”项目103个 总投资额139.7亿元
- 池州海关共签发RCEP原产地证书22份 签证金额92.7万美元
- 宿州泗县深入推进文旅融合发展 擦亮城市品牌
- 河北工业生产平稳开局 固定资产投资较快增长
- 昆明西山区深入实施人才强区战略 建立健全招商招才引资并轨新模式
- 2月唐山新建商品住宅销售价格与上月持平 同比下降0.8%
- 去年河北电子信息产业实现主营业务收入2367.7亿元 同比增长22.4%
- 绥化望奎以工业化思维为引领 推动肉类加工制造产业腾飞
- 绥化市监局推出多项举措 大力促进有机产品产业发展
- 半路出家无心插柳 杭州西湖区“菌菇宝宝”变废为宝
- 温州鹿城区藤桥主打藤桥熏鸡 近两年销售额年均增长20%以上
- 1-2月安徽限额以上消费品零售额1030.4亿元 同比增长10.4%
- 2021年合肥市茶园面积13.6万亩 产值176350万元
- 淡季不忘引流 京郊民宿市场将很快迎来回暖
- 郴州安仁文旅项目集中开工 总投资1000万元
- 江苏服务业继续保持发展强劲势头 为高质量发展提供有力支撑
- 黄山休宁经开区摸排基础设施项目17个 计划总投资29709万元
- 前两个月宣城出口31亿元 增长34.4%
- 滁州凤阳2021年共接待游客225万人次 旅游综合收入20.25亿元
- 1-2月宿州市民间投资同比增长19.2% 居全省第3位
- 宿州严格审核把关 抢抓发行地方政府专项债券政策机遇
- 1-2月亳州市进出口总值5.5亿元 同比下降17.4%
- 合肥:弘扬茶文化 初步形成一条生态发展之路
- 合肥:建成“数字中国”领先城市 推进城市数字化转型
- 甘肃再续“艾黎情”:探职业教育德技并修
- 【城市守望者】致敬抗“疫”一线的“拆弹专家”
- 浙江绍兴越城区核酸检测结果公布 除1例阳性外其余均为阴性
- 内地首例奥密克戎变异株感染者身体状况如何?来自哪里?专家解读→
- 对变异病毒已有准备!关于中国新冠药物,钟南山发声→
- 江苏睢宁小网格大担当 织就乡村振兴“幸福网”
- 改造老旧小区 共享幸福生活
- 天津静海:群众在哪里,文明实践就延伸到哪里
- 齐齐哈尔:初步判断疫情感染来源为接触新冠病毒污染环境和物品
- 重庆大竹林派出所副所长因对群众态度简单粗暴被停职
- 黑龙江讷河病例感染源初步判断为新冠病毒污染的环境和物品
- 致敬2021
- 浙江瑞安民警捐献造血干细胞:14年前的心愿终将如愿
- “考研房”涨价离谱 律师:借机宰客有违市场伦理
- 广州白云机场:14天内有东莞旅居史的旅客须凭48小时核酸阴性证明乘机
- 浙江绍兴本轮疫情已报告确诊病例145例 无症状感染者1例
- 福建龙岩一男子和前妻斗气 扛着126斤硬币到法院“还钱”
- 重庆这座立交酷似“悟空” 走红 设计师揭秘(图)
- 青海警方破获特大电诈案 涉案流水高达1.7亿
- 云南新增境外输入确诊病例3例
- 黑龙江讷河市5名核酸阳性人员流调溯源:接触被新冠病毒污染的环境和物品
- 男子爱上女主播 假扮女主播闺蜜教其他男粉丝刷单
- 广西三市警方联手破获毒品案 全链条摧毁跨境贩毒团伙
- 广东东莞发现2例无症状感染者,部分镇今起全员筛查
- 从百二秦关到闻道凯旋 一个殉职医生最后的朋友圈
- 浙江发补充说明:三地铁路出行政策随风险等级同步调整
- 内蒙古新增本土确诊病例5例 均在呼伦贝尔满洲里市
- 陕西新增本土确诊病例1例 系隔离酒店工作人员
- 31省份新增新冠肺炎确诊病例76例 其中本土51例
- 浙江新增新冠肺炎确诊病例45例 其中本土44例
- 技能就是财富 技工也是人才
- 黑龙江新增本土确诊病例1例、本土无症状感染者4例
- 冷空气“调休”!我国大部陆续迎回暖 中东部雨雪稀少
- 华北黄淮等地大气扩散条件转差 冷空气将影响中东部
- 别误读了野猪或将不再是“三有”动物
- 您的ETC已到期?当心这个诈骗短信!
- 对回家的“宝贝”少一些关注,也是一种帮助
- 升温!北京今日阳光在线 最高气温将升至8℃
- 那年今日 | 一张漫画涨知识之12月14日
- 40岁男子一觉醒来突然听不见了 原因是……
- 本年度星空压轴大赏上演 双子座流星雨观赏地图来了
- 广东东莞大朗镇报告2例新冠肺炎无症状感染者
- 商丘4885份被盗出生证去哪了?10年“悬案”引关注
- 浙江海宁警方通报国家公祭日女子穿和服逛街
- 厨艺不精调料凑?懒人调料:年轻人的“下厨神器”
- “您的ETC已到期?”警方提醒:当心这个诈骗短信
- “网红”局长的热度 自述:走红后我就没有周末了
- 寻回被拐10年的儿子后又送走 儿子:害我没家了
- 小城里的三张面孔和警号301137
- 倡导“就地过年”,需因地制宜科学防疫
- 别用“入乡随俗”为星巴克找借口
- 北京地铁14号线年底全线贯通运营
- 天津市从入境人员中检出奥密克戎变异株
- “外滩活地图”黄俊:一个不想出圈的段子手交警
- 寻找一双儿女的25年
- 无锡市场监管部门责成星巴克涉事门店停业整改
- 海岛警事:为了一座岛和2900平方公里的海
- 北京民警宏福苑抗疫26天:“今夜我和雪花一起出发”
- 星巴克的“金标准”缘何败给了“潜规则”
- 患者被低价药“惊呆”的场面应该更多些
- 影视剧“超前点评”不止是“低级错误”
- “南昌鹦鹉案”下发不起诉决定书 网店上架费氏牡丹鹦鹉被拒
- 河南商丘4885份出生医学证明被盗始末追踪
- 绍兴市病例62-109活动轨迹公布
- 12月7日以来,杭州累计报告新冠肺炎确诊病例19例
- 浙江绍兴新增确诊病例37例 上虞区占36例
- 河南高院对张成功案作出死刑判决
- 四川一滑雪场停电游客被困索道 官方回应
- 浙江绍兴越城区新增1例新冠肺炎确诊病例 当地对防控区域划分进行调整
- 中国内地首次检出新冠病毒奥密克戎变异株
- 知网除了涉及著作权纠纷,是否涉嫌违反《反垄断法》?
- 浙江绍兴越城区新增1例新冠肺炎确诊病例
- 四川眉山千箱柑橘送往呼和浩特市抗疫一线
- 两名青年男女探险三亚落笔洞遗址被困沼泽 消防成功救援
- 中国地理学大会在福州发布《中国地理学界碳中和科技行动福州宣言》
广告
广告
- 各地高考分数线最新汇总!填报志愿,这些问题要注意-全球快看点
- 深圳龙华:文化润城成为一抹亮丽的民生底色_热头条
- 动态:双缴存人公积金贷款最高100万元,房贷利率最低降至3.7%,7月1日起扬州施行最新楼市政策
- 天水小陇山:林区生态保护改善
- 钛镁合金门图片(钛镁合金)|环球热讯
- 环球观热点:每个液化石油气瓶都要排查到位 四川省全面开展燃气安全专项排查整治
- 适合无聊打发时间的pk游戏分享 随便打打就能赢的竞技类手游推荐|最新
- 异界矿工txt(异界矿工)|全球热资讯
- 大美中国夏日潋滟无限好 湖光山色展风韵
- 迷路老人操闽北口音沟通难,民警多番找“翻译”助她找到家
- 建业地产:公司正常运营,未收到任何加快境外还款通知 即时
- 不知天上宫阙今夕是何年歌曲(不知天上宫阙今夕是何年)
- 环球看点!2023蚂蚁庄园6月25日答案2
- 桥梁倒塌致美国一火车脱轨,石油燃料泄漏至河中-全球通讯
- 慈禧太后电影完整版国语(慈禧太后电影完整版)|环球热推荐
- 谷草转氨酶偏低谷草谷丙比值偏高_谷草转氨酶偏低有事吗-每日视点
- 苹果充值退款网址链接入口_苹果充值退款网址
- 热推荐:华硕a8t是哪一年产的_华硕a8j是哪一年生产的
- 吊环图片情趣_吊环图片cad
- 全球微头条丨越南多乐省警局遇袭案中75人因涉嫌参与恐袭接受调查