如何筛选符合多个条件的数据,如何同时筛选出多个数据

坚持每日一读一练。不为其它,只为督促和鞭策自己,不断保持谦虚谨慎之心,敬畏世界之大,敬畏知识之日新月异,避免靠老经验固步自封盲目自大,力争活到老学到老。

场景描述:在学校统计核酸人数时,需要把多个班级中符合条件的数据汇总到一张表中,如果每个都打开复制粘贴一遍,费时费力。所以可以用编程实现减少操作量

思路:读取文件夹中的excel文件,并按名称排序,然后根据条件,把筛选出的数据汇总到一个表中。

采用go+excelize

目录结构如下

func main() { // main函数,是程序执行的入口 fmt.Println("wcy 的小程序") // 在终端打印 var ClassList []Class = InitClass() var relativePath string = "./excel" var result []Class //读出相对路径下的文件列表 pathList, _ := ReadFiles(relativePath) // 获取班级数据结构体 result, _ = GetClassRelativePath(ClassList, pathList) // 读取每个文件中的数据中"未返庆家庭成员"sheet页数据,将数据存入多维数组 var tempList [][]string for i := 0; i < len(result); i++ { if result[i].RelativePath != "" { var temp = GetExcelDate(result[i].RelativePath, "未返庆家庭成员") tempList = append(tempList, temp…) } } fmt.Printf(" 查询出的数据:%v
", tempList) // 导出一张整表 SaveToExcel(tempList, "未返庆家庭成员")}

相关的函数

// 读取文件名信息func ReadFiles(relativePath string) (pathList []string, err error) { if relativePath == "" { return nil, errors.New("目录为空") } var List []string var FileInfo []os.FileInfo if FileInfo, err = ioutil.ReadDir(relativePath); err != nil { fmt.Println("读取 文件夹出错") return nil, errors.New("读取 文件夹出错") } for _, fileInfo := range FileInfo { // fmt.Println(fileInfo.Name()) // //获取文件后缀 fileSuffix := path.Ext(fileInfo.Name()) // fmt.Println("fileSuffix =", fileSuffix) // //获取文件名 // filenameOnly := strings.TrimSuffix(fileInfo.Name(), fileSuffix) // fmt.Println("filenameOnly =", filenameOnly) if fileSuffix == ".xlsx" { List = append(List, fileInfo.Name()) } } // fmt.Println(List) return List, nil}type Class struct { Id int `json:"id"` Name string `json:"name"` RelativePath string `json:"relativePath"`}// 初始化班级列表func InitClass() (list []Class) { name := [15]string{"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五"} var s []Class var class Class for i := 1; i <= 15; i++ { class = Class{ Id: i, Name: "高一" + name[i-1] + "班", RelativePath: "", } s = append(s, class) } return s}

本文地址:https://www.cknow.cn/archives/1671

以上内容源自互联网,由百科助手整理汇总,其目的在于收集传播生活技巧,行业技能,本网站不对其真实性、可靠性承担任何法律责任。特此声明!

如发现本站文章存在版权问题,烦请提供版权疑问、侵权链接、联系方式等信息发邮件至candieraddenipc92@gmail.com,我们将及时沟通与处理。