精华内容
下载资源
问答
  • #!/usr/bin/env python # -*- coding:utf-8 -*- import os import openpyxl import datetime ...file_name = "数据按年份筛查到新的工作薄.xlsx" file_result = os.path.join(file_path, file_name...

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import os
    import openpyxl
    import datetime
    import time
    
    year_list = [2013, 2014, 2015, 2016, 2017, 2018]
    file_path = r"F:/test"
    file_name = "数据按年份筛查到新的工作薄.xlsx"
    file_result = os.path.join(file_path, file_name)
    
    
    def excel():
        """
        """
        wb = openpyxl.load_workbook(file_result)  #  首先获取excel文件生成对象wb 使用openpyxl.load_workbook 方法
        sh = wb.active  #  使用wb中的active方法获取当前工作薄:btc 生成新的对象sh
        index = 0  #  设置一个数字变量之后会用到
        for i in range(len(year_list)): # 循环6次,6次来源于year_list列表长度
            count = 2 # 定义一个数字变量 后面会用到
            sh1 = wb.create_sheet(str(year_list[index])) # 使用使用wb.create 方法创建工作薄名称。名称为列表中的值,index是上面定义的数字变量
            
            for rows in sh.rows:   # 循环btc工作薄表中的内容
                if rows[1].coordinate != "B1" and datetime.datetime.strptime(rows[1].value, '%Y/%m/%d %H:%M:%S').year == year_list[index]:
                  # 把日期和金额去除从第二行开始循环, 使用datetime模块将获取的value1的时间字符串解析为时间元组。 最后取年值进行匹配
                    # print(rows[0].value, rows[1].value)
                    sh1["A1"] = "编号"
                    sh1["B1"] = "日期"
                    sh1["C1"] = "姓名"
                    sh1["D1"] = "电话"
                    sh1["E1"] = "住址"
                    sh1["A" + str(count)] = rows[0].value # A + str(count) 第二行开始 写入
                    sh1["B" + str(count)] = rows[1].value
                    sh1["C" + str(count)] = rows[2].value
                    sh1["D" + str(count)] = rows[3].value
                    sh1["E" + str(count)] = rows[4].value
    
                    # print("in sh:", sh1["A" + str(count)].value, sh1["B" + str(count)].value)
                    print(f"正在分析{year_list[index]}年数据.....")
                    count += 1 # 没完成一次循环 count + 1
            index += 1 # 同时index + 1
        wb.save("F:/test/数据按年份筛查到新的工作薄-已处理.xlsx") # 当函数全部执行完成后,使用wb.save 保存即可。
    #print(wb)
    if __name__ == "__main__":
       start_time = time.time()
       excel()
       print(f"分析完成,用时时间为{time.time() - start_time}秒")

    展开全文
  • 在前一篇文章介绍了筛选按钮的—- Android自定义view之筛选按钮 该控件主要是为了在某些筛选的地方点击选中某一个需要选中的子项而创作,接下来介绍一款控件——年份/价格筛选控件,OK 废话不多说,来看效果图 ...

    前言:
    在前一篇文章介绍了筛选按钮的—- Android自定义view之筛选按钮 该控件主要是为了在某些筛选的地方点击选中某一个需要选中的子项而创作,接下来介绍一款控件——年份/价格筛选控件,OK 废话不多说,来看效果图
    这里写图片描述
    OK 接下来 看实现步骤:
    我们现在分析一下这个控件的组合,该控件一共由三个地方组成,组成一:顶部的标题(TextView),组成二:中间的显示控件(两个EditText和一个view),组成三:三个筛选选中的控件(上一篇文章中介绍的控件组合而成),OK,分析好了之后 接下来我们就来实现这个组合控件。
    步骤一:既然这是一个组合控件,那么免不了要自定义并继承与一个group 容器,这里这个容器可以自由选择,我选择的是LinearLayout,所以第一步我们先在XML中实现这个效果
    代码如下:

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/shopping_list_flilter_height">
    
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:gravity="center|left"
            android:text="标题"
            android:textColor="@color/color_default_font_color"/>
    
    </RelativeLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal">
    
        <EditText
            android:id="@+id/et_low"
            android:layout_width="0dp"
            android:layout_height="@dimen/shopping_list_flilter_input_height"
            android:layout_weight="1"
            android:background="@drawable/shape_filter_item_constion_bg"
            android:gravity="center"
            android:hint="@string/shopping_list_flilter_year"
            android:textSize="@dimen/item_font_size" />
    
        <View
            android:id="@+id/v_line"
            android:layout_width="10dp"
            android:layout_height="@dimen/line_height"
            android:background="@color/color_33" />
    
        <EditText
            android:id="@+id/et_higt"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:background="@drawable/shape_filter_item_constion_bg"
            android:gravity="center"
            android:hint="@string/shopping_list_flilter_year"
            android:textSize="@dimen/font_size" />
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    
        <view.SelectedView
            android:id="@+id/sv_filter1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    
        <view.SelectedView
            android:id="@+id/sv_filter2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/shopping_list_filter_item_margin"
            android:layout_marginRight="@dimen/shopping_list_filter_item_margin"
            android:layout_weight="1" />
    
        <view.SelectedView
            android:id="@+id/sv_filter3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>
    

    最外层是一个LinearLayout(别忘记加了)
    步骤二:定义一个类继承与LinearLayout,并重写其构造方法,然后利用LayoutInflater 转换器对之前定义的XML文件进行转换,并且利用TextWatcher对xml文件中用到的筛选按钮控件进行监听,代码如下

     textWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                String val = etLow + "-" + etHigt;
                L.i(val);
                if (!(val.equals(svFilter1.getText()) || val.equals(svFilter2.getText()) || val.equals(svFilter3.getText()))) {
                    svFilter1.setChecked(false);
                    svFilter2.setChecked(false);
                    svFilter3.setChecked(false);
                }
            }
            @Override
            public void afterTextChanged(Editable s) {
            }
    

    然后利用attrs对控件定义属性和文字:

    if (attrs != null) {
            TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.IntervalSearch, 0, 0);
            etLow.setHint(a.getString(R.styleable.IntervalSearch_lowTxt));
            etHigt.setHint(a.getString(R.styleable.IntervalSearch_higtTxt));
            svFilter1.setText(a.getString(R.styleable.IntervalSearch_svFilter1));
            svFilter2.setText(a.getString(R.styleable.IntervalSearch_svFilter2));
            svFilter3.setText(a.getString(R.styleable.IntervalSearch_svFilter3));
            titleTxt.setText(a.getString(R.styleable.IntervalSearch_titleText));
    
            if (a.getBoolean(R.styleable.IntervalSearch_higtHide, true)) {
                etHigt.setVisibility(VISIBLE);
            } else {
                etHigt.setVisibility(GONE);
                vLine.setVisibility(GONE);
            }
            a.recycle();//回收内存}
    

    步骤三:重写onFinishInflate 方法,对三个选中按钮控件进行处理其中一个控件的处理代码如下:

    svFilter1.getLlytItemFilterBg().setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                etLow.removeTextChangedListener(textWatcher);
                etHigt.removeTextChangedListener(textWatcher);
    
                svFilter1.setChecked(!svFilter1.isChecked());
                svFilter2.setChecked(false);
                svFilter3.setChecked(false);
                if ("0".equals(type)) {
                    String[] prices = svFilter1.getText().split("-");
                    etLow.setText(prices[0]);
                    etHigt.setText(prices[1]);
                } else {
                    String year = svFilter1.getText();
                    year = year.substring(0, year.length() - 1);
                    etLow.setText(year);
                }
    
                etLow.addTextChangedListener(textWatcher);
                etHigt.addTextChangedListener(textWatcher);
            }
        });
    

    其余两个控件的处理也这一个控件的处理是一样的,这里我就不贴全部的代码了
    步骤四:对所有控件做置空归位处理
    好了,到这里一个仿京东年份/价格选择的控件就实现完成了,谢谢

    展开全文
  • Jquery自动生成当前年份日期筛选

    千次阅读 2016-04-22 18:05:37
    项目需要,写了这个自动生成年份和月份的筛选框。其中年份可以从指定年到今年,月份默认生成今年已经到达的月份,并默认选中今月。并且当年份筛选框改变时,联动改变月份筛选框。注意:都是在jQuery下写的//首先是...

    项目需要,写了这个自动生成年份和月份的筛选框的功能

    • 其中年份select可以生成从指定年份到今年的多个option,并默认选中今年;
    • 月份select默认生成从1月到今月的多个option,并默认选中今月;
    • 当年份select改变option时,联动改变月份select的option。

    注意:都是在jQuery下写的

    //首先是工具函数:给select添加option
    function addtosel( sel_id, op_id, op_name )
    {
        if( sel_id == undefined ||  sel_id == null )
            return;
        var  sel = $( sel_id );
        if( sel != undefined && sel != null)
            sel.add(new Option(op_name, op_id ));
        return sel;
    }
    
    ///////////////////////////////////////获取2015年至今的年份,把他们给sel选项,并且选中今年
    var year_options = [];  
    //将这些年份设置给select的options
    function set_year_options( sel_id ){
        //获得年份数组
        var this_year = 0;
        var this_date = new Date();
        this_year = this_date.getFullYear();  //得到今年
        //设置一个起始年份,然后把从起始年份到今年的这几年,放入数组。
        for(var start_year = 2015;start_year<=this_year;start_year++){
            year_options.push(start_year);
        }
        //清空选项年份选select的option
        $(sel_id).find("option").remove();
        //增加一个Please select的  option
        addtosel( sel_id, "", "Please select" );
        //加入刚才的年份
        for(var i=0;i<year_options.length;i++){
            addtosel( sel_id, year_options[i], year_options[i] );
        }
        //选中最新的年份
        set_selected_value( sel_id, year_options[year_options.length-1] );
        year_options = [];
    }
    //////////////////////////////////获取年初至今的月份,把他们给sel选项,并且选中这个月
    var mouth_options = [];
    var en_mouth = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    //将这些年份设置给select的options
    function set_mouth_options( sel_id ){
        //获得月份数组
        var this_mouth = 0;
        var this_date = new Date();
        this_mouth = this_date.getMonth();//得到今月
        //从一月到今月放入月份数组
        for(var start_mouth = 0;start_mouth<=this_mouth;start_mouth++){
            mouth_options.push(start_mouth);
        }
        //清空月份select的option
        $("#"+sel_id).find("option").remove();
        //给月份select先增加一个Please select  的option
        addtosel( sel_id, "", "Please select" );
        //加入新的月份数组选项
        for(var i=0;i<mouth_options.length;i++){
            addtosel( sel_id, en_mouth[i], en_mouth[i] );
        }
        //选中最新的月份
        set_selected_value( sel_id, en_mouth[mouth_options.length-1] );
        mouth_options = [];
    }
    //当年份的select选项onchange的时候让月份联动起来。
    //将这个函数绑定给年份select,并且写入参数
    function on_year_change(year_sel_id,mouth_sel_id){
        //取被选中的选项那一年
        var selected_option_value = $(year_sel_id).find("option:selected").val();
        //取今年(是年份数组的最后一个值)
        var this_year = $(year_sel_id).find("option:last").val();
        if( selected_option_value ==  this_year ){//如果选中的是今年
            $(mouth_sel_id).find("option").remove();//清空月份的option
            set_mouth_options(mouth_sel_id);//重新设置今年的月份option
        }else{  //若选中的不是今年,也就是以前的年份,那么月份得显示全部12个月
            $(mouth_sel_id).find("option").remove();//清空月份option
            addtosel( mouth_sel_id, "", "Please select" );//给月份增加一个Please select的option
            for(var i=0;i<12;i++){//加入全部12个月的option
                addtosel( mouth_sel_id, en_mouth[i], en_mouth[i] );
            }
        }
    }

    所需的函数就是以上这些,在使用的时候还需要绑定。

    $().ready(function(){
        //给年份select增加options
        set_year_options("#year_select");
        //给月份select增加options  
        set_mouth_options("#mouth_select");
        //绑定联动       
        $("#year_select").change(function(){
            on_year_change("year_select","mouth_select");
        }); 
    });
    展开全文
  • 将该文件放置在需要被筛选文件的目录下 将需要筛选的文件后缀替换在文件名html处,如需要筛选的文件格式为psd,则文件名称修改为xxx_psd.py 双击执行后在被筛选文件的目录下生成一个html文件,如:2019_new_...
    • 使用须知:

    文件名称为: xxx_html.py

    1. 将该文件放置在需要被筛选文件的目录下
    2. 将需要筛选的文件后缀替换在文件名html处,如需要筛选的文件格式为psd,则文件名称修改为xxx_psd.py
    3. 双击执行后在被筛选文件的目录下生成一个html文件,如:2019_new_html_file.html
    • 打包为可执行文件

    安装模块
    pip install pyinstaller
    cmd 进入当前py文件的目录下,运行命令: pyinstller -F *.py

    • 源代码
    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    import time
    import os
    import re
    import sys
    from os import stat
    
    # 当前运行py的名称
    curPyName = sys.argv[0][sys.argv[0].rfind(os.sep) + 1:]
    
    # 筛选的文件类型
    curFileName = (curPyName.split('_')[1]).split('.')[0]
    
    # 当前年份
    curYear = time.localtime(time.time())
    
    # 当前路径
    directory = os.getcwd()
    
    # 筛选文件正则
    fileReg = r'.*\.' + curFileName
    
    # 记录前一个文件夹路径,用于划分文件夹
    prevFilePath = ''
    
    # 生成文件的名称
    newFileName = str(curYear.tm_year) + '_new_' + curFileName + '_file.html'
    
    # 打开文件,未找到该文件时则自动创建,编码格式为utf8
    f = open(newFileName, 'w', encoding='utf-8')
    
    f.write('<html> <head> <title>【'+str(curYear.tm_year)+'年】'+ curFileName +'文件列表</title> </head> <style> table{ font-size: 14px; color: #333;} </style> <body>')
    
    # 遍历当前路径下的文件夹,通过正则表达式筛选出文件,再根据时间筛选出结果
    for parent, dirnames, filenames in os.walk(directory):
        for i in filenames:
            if re.match(fileReg, i):
                filePath = os.path.join(parent, i)
                statInfo = stat(filePath)
                curTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(statInfo.st_mtime))
                if curTime > str(curYear.tm_year) + "-01-01 00:00:00":
                    if parent != prevFilePath:
                        if prevFilePath != '':
                            f.write('</table><hr>')
                        f.write('<table><tr style="text-align: left;"><th colspan=2>当前文件路径:' + parent + '</th></tr>')
                        f.write('<tr style="text-align: left;"><th>时间</th><th>文件名</th></tr>')
                    f.write('<tr><td style="width: 150px;">'+curTime + '</td> <td>' + i + '</td></tr>')
                    prevFilePath = parent
    
    f.write('</table></body></html>')
    
    # 关闭文件
    f.close()
    
    input("输入任意键结束")
    
    展开全文
  •   在做报表的时候项目需求是按年份、季度、月份或者日期查询数据,这些要求都是时间段来查询数据。但和我们的时间段查询又有些不同。其实,报表中的按年份、季度、月份或者日期查询的基本步骤可以划分为两个小...
  • SQLSERVER中年月分组 一个表有三个字段id,dt,d分别存放id,时间,数值 ID DT d 1 2015-08-11 12:12:00.000 9 2 2016-09-11 12:12:00.000 2 3 2017-10-11 12:12:00.000 6 4 ...
  • 就是,增加一个下拉框,里面选择时间,比如:2012年,下面的web部件中就筛选出2012年的所有数据? 在线等,必给分。
  • //筛选出固定年份的数据 } }, whichYearAgo(sDate1, year) { let aDate, oDate1; aDate = sDate1.split( '-' ); oDate1 = aDate[ 0 ]; if (oDate1 ) { return oDate1; //筛选出3年前的数据 } }, ...
  • java获得系统当前的年份

    千次阅读 2019-09-20 17:08:07
    /** * <获取当前系统年份> * * @return 年份 * @throws */ public String getSysYear() { return String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); } ...
  • 它的最小值还是个负数 另外,每次我筛选营业年份小于100的行,明明大部分都符合这个条件,但最后data.frame里面的数据就全被删掉了 拜托大神帮帮忙,快被R整崩溃了!!!!
  • 数据筛选

    2021-01-29 20:01:59
    数据筛选 # 读取数据 import pandas as pd data = pd.read_csv('...')...根据年份范围筛选 drop_row_index = data[data['Year'] > 2015].index data = data.drop(drop_row_index) # 查看数据筛选后的size data.shape
  • 查询指定年份数据

    2017-12-19 19:25:00
    查询指定年份数据,如2010select * from tablename where 日期列 = '2010'1)如果日期列是日期格式的,使用 to_char(日期列,'yyyy')='2010'2)如果日期列是verchar(2)格式的 substr(日期列,0,4)='2010' 转载于:...
  • mysql获取date日期的的年份

    万次阅读 2019-06-30 20:37:50
    在mysql数据的查询中,对于某些查询,我们可能需要根据date类型的字段的年份和月份作查询条件,而后端传入的条件可能是整数类型,如何比较大小呢? Mysql中提供了year和month函数截取...例如:这样就可以筛选出2018...
  • Java中获取当前系统年份

    千次阅读 2019-02-07 12:21:11
    Java中获取当前系统年份
  • element-ui的年份赋值

    2019-09-19 18:18:02
    有个统计分析的地方需要做年份筛选,默认是当年,可是赋值却总是失败,不管是new Date().getFullYear()还是直接赋值为常亮值都不行,都是显示为1970; 后来发现是因为那样的写法都是number,而这个组件需要的必须是...
  • matlab中数据的日期筛选一定的间隔取均值和输出到txt上代码 上代码 首先需要输入日期DATE【cell】和对应径流【double】作为matlab的变量 m=arrayfun(@(k) DATE{k}(6),1:28490,'un',0) n=m' k=cell2mat(n) k2=...
  • Pandas数据处理 如何日期筛选、显示及统计数据
  • 按年份和城市筛选 按期过滤 统计合并 简单合并 可视化 地图 桌子 图表 柱子 线 馅饼 两个Y轴图 三个Y轴图 发行版 服务器端点: 截屏 行动计划 初始项目 设置React&Install依赖项 设置路由器 导航栏...
  • html下拉选之年份选择

    万次阅读 2017-03-23 19:57:25
    这是之前的一个选择日期的需求,挺少做这些的,存个底,方便到时候拿出来用用 请选择 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 ...1
  • JS编写选择年份控件

    千次阅读 2015-11-04 17:01:23
    最近需要一个只是选择年份的控件,网上找了一遍了,没发现合适的,故自己写了一个,效果如下图: 源码如下: 调用部分: var curColor; var fontColor; function mouseover(obj) { curColor = obj.style....
  • select * from "DCS_WR" where "CREATE_TIME" between (select current_timestamp - interval '20 day') and current_timestamp // 天数 前20天至今天 select * from "DCS_WR" where "CREATE_TIME" between (select...
  • 转载自:版权声明:本文为CSDN博主「冰淇淋@」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。...//只选择年份 $('.datepicker').datepicker({ format: 'yyyy', languag...
  • 1.关键词筛选高级筛选最重要的就是条件区域,资产名称四门书柜,日期2017/1/1,都是写得非常标准。这里只做一个高级筛选的演示动画,其他的案例不做动画演示。在高级筛选的时候,最最重要的是确认三个区域有没写错...
  • 一,年份选择的问题是:从 ** 年至 **年,例如,86-2016年。那么这个86年可以写死而2016则是当前年份。 二,月份基本没什么问题,可以直接写出1-12的月份也可以采用foreach来遍历 下面部分代码: 1 <% ...
  • 只选择年份的下拉菜单 转自:http://www.cnblogs.com/guanghuiqq/archive/2012/10/18/2728932.html 第一种:在jsp页面中写入java代码,这是网上搜到的,不过感觉不是很好。代码如下: <select name="year1...
  • 一、EF日期格式筛选,获取本年,本月,本日等 1.直接使用DateTime的部分值相等 //获取上一个月 DateTime date = DateTime.Now.AddMonths(-1); int count = _context.students.Where(q => q.sbirthday.Value.Yea
  • 年份: ;width: 80px"> 调度员角色: xm-select-skin="normal" xm-select-search="" xm-select-max="30"> 所有 操作人 审核人 值班负责人 搜索 导出Word ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,058
精华内容 4,023
关键字:

如何筛选按年份