热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从两张Excel表所想到的

从两张Excel表所想到的前几日,客服妹子发过来几张表,让我给她做下匹配,然后做了,想了,便有了这篇博文,不由感慨,看似简简单单的两张Excel表其实藏着好多东西,记叙如下,与君共勉。

从两张Excel表所想到的

  前几日,客服妹子发过来几张表,让我给她做下匹配,然后做了,想了,便有了这篇博文,不由感慨,看似简简单单的两张Excel表其实藏着好多东西,记叙如下,与君共勉。

  最初的需求:两张表,一张学生信息表,一张学生成绩表,通过准考证号将之关联起来使之完整。

  完成需求的四种方法:

  第一种方法,通过Navicat for MySQL将两张表导入到mysql中,然后用left join关联,再做导出,方法可行,最后放弃。

  第二种方法 ,使用Excel的vlookup函数,由于本人对Excel不熟,未用,但旁边的同事用了,方法可行,但毕竟是手工操作,能不能保证不遗漏数据,存疑。

  第三种方法,使用Excel的microsoft query 工具,使用sql语法关联数据,可行,效率太低,放弃。

  第四钟方法,coding,做个小程序,匹配数据,这种方法正是现在采用的方式,实现截图如下:

image

 

思考问题:

1.为什么一个任务用了四种方法?

答:需求,在需求之初只是两张Excel表,但过后,数据暴涨,变成了给十几个城市的考生做数据匹配,而且通过了解,这种数据对比其实是一项经常性的重复工作,且数据的来源并不是由公司同事录入,数据的格式比较混乱,如信息表里字段叫“姓名”,成绩表了成了“考生姓名”,虽然是同一个东西,但按姓名匹配时,必定要修改字段名称,Excel表格一多,上述的1,2,3种方法效率堪虞,而自己coding,判断字段的时候加个同义词的功能,就能解决,以此得到第一个教训:无论是客户还是同事,面对每一个任务都必须仔细聆听,反复确认,很多人会以为是给同事干活,人家会包容你,但其实是给自己偷懒找个借口,最后偷懒不成,走了弯路,还是自己遭罪。确认需求时,如数据量,任务频率,完成任务时间等等都是很重要的信息。

2.怎么将一个小程序做的专业,为什么要做到专业?[自个儿琢磨的结果,请大神多指教]

答:作为技术,专业与严谨就是立身之本,古语说,不扫一室何以扫天下,一个小程序都不能追求专业,如何指望能做大程序,在这个小程序中,我以三点来说专业:第一,就是刚刚说的字段同义词,很多问题,只要多想一步,就能改变很多;第二,我本来打算使用odbc去连接Excel,但考虑数据格式的不确定性,最后换用NPOI读取数据,虽然工作量增加了,但程序的可用性更好,比如在读取Excel数据的时候,我会把基准表的style一并读取,匹配导出后将样式在还原过去,当同事拿到结果的时候,都不用调整表格的style,虽是细节,但每一个细节都很重要;第三,在匹配的时候,我是在循环里面调用DataTable的select方法,但后面一查,这种方法效率很低,引用他人专业的批语如下:

在数据填充完成之后,设置主键要比在填充数据之前设置主键效率要高的多。设置主键之后,比较了在有无主键的情况下,DataTable.Select 方法在仅对主键字段进行过滤时的性能,结果表明,在仅对主键进行检索时,设置主键之后使用DataTable.Select 方法会比没有主键的情况下的检索速度会快非常多。在相同条件下,如果仅需要查找某一条记录,使用DataTable.Rows.Find会比DataTable.Select快很多。在某些需要频繁操作DataTable查询的时候,要避免在循环体内调用DataTable.Select方法,采用将DataTable转换为等价的Dictionary结构,能够有效解决由于键值重复导致不能创建主键的问题,并且Dicitonary的采用哈希表的方式查找能够极大地提高查询效率。

后来与需求向比对,每一个Excel表的数据量不超过1000条,对于程序性能的影响可忽略不计,也就没有更改程序,但对于程序性能的考虑应成为每一个程序员coding时的下意识考虑,因为这就是素养,必须牢记在心。

3.程序之外的思考。

答:在小程序写好后,由于数据的来源太乱,很多考生找不到相关信息,客服的妹子说最好能用准考证号+身份证号作双关联,思考过之后,程序不动,因为到了这一阶段,准考证号与身份证号都是考生的唯一依据,如果要做双关联,就表示之前的流程出了差错,在此时,你不应是个程序员,而是与客服妹子一起找出问题的原因,向公司提出建议,改善流程,杜绝此类问题的发生,这虽是超出了工作岗位的范畴,但你心里必须清明,什么事是防微杜渐,什么事是敷衍塞责,做哪一种人,决定了你的发展。

4.更多的思考,怎样做个好员工?

1.给公司带来利益
2.不断思考,优化工作流程,给公司文化与流程结构带来积极的影响
3.构建知识库给公司知识库带来积极的影响
4.分享,给公司同事带来利益
5.做好上述的每一步,自然也会给自己带来利益与发展

昨天看到一段话,深有感触,与诸君共勉:

只简单完成老板交代的任务永远只有最多60分,切实明白了老板想要的,并完成了业务需求的算70分,充分挖掘老板想要的能为团队或老板分忧的才能到80分。


推荐阅读
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文探讨了在SQL Server 2008环境下,当尝试删除拥有数据库架构的用户时遇到的问题及解决方案,包括如何查询和更改架构所有权。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
  • 本文作为《WM平台上使用Sybase Anywhere 11》系列的第二篇,将继续探讨在Windows Mobile (WM) 系统中如何高效地操作Sybase Anywhere 11数据库。继上一篇关于安装与基本测试的文章之后,本篇将深入讲解数据库的具体操作方法。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 在处理大数据量的SQL分页查询时,通常需要执行两次查询来分别获取数据和总记录数。本文介绍了一种优化方法,通过单次查询同时返回分页数据和总记录数,从而提高查询效率。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了Hibernate中的立即检索与延迟检索的概念及区别,同时探讨了类级别与关联级别的检索配置方法。通过具体的配置示例,帮助开发者更好地理解和应用这些策略。 ... [详细]
  • SQL Server 存储过程实践任务(第二部分)
    本文档详细介绍了三个SQL Server存储过程的创建与使用方法,包括统计特定类型客房的入住人数、根据房间号查询客房详情以及删除特定类型的客房记录。 ... [详细]
  • 微信小程序开发指南:创建动态电影选座界面
    本文详细介绍如何在微信小程序中实现一个动态且可视化的电影选座组件,提高用户体验。通过合理的布局和交互设计,使用户能够轻松选择心仪的座位。 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
author-avatar
yangxinhui2602905795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有