[16-11-18]从[DHU教师排课助手]聊一下C#使用Oledb和range Cells[row,col]操作Excel


[更新 2016-11-18 9:15]

第二次更新的时候我统计了一下男、女和混合班在两个校区分别有几个班。

当时在处理的时候,根据老师的习惯,包含”“字的则认为是男生班,而混合班数量比较好,剩下的是女生版(相信的看11-16的更新即可)。

但是在实际过程中,发现,这样子并不是完全可靠的,因为男生班里面,散打班是男生班,但是只有这一个是不一样的,其他都含有”男”字,而混合班也多了一些。

因此我又做了一个框,用于标明没有男字的男生班

同时,老师需要统计新生和老生分别男、女、混合班都有多少个,而我在第一次的处理中就已经分开新生老生了了(详细见下面的文章),刚好分开统计即可,因为一个label已经放不下统计的结果,我又做了一个只读的RichTextBox,来放最后的统计结果。

效果如下:

1

其实后来我觉得,在课程代码中再加一个字段,说明是男生班还是女生班或者是混合班,才是最好的处理方式。

但是懒得弄了 – -已经搞定了反正~~~


更新分割线




[更新 2016-11-16 14:57]

内容:

要求课程代码里面必须都是文本格式,因为一些课程是不分男女的,也就是称为混合班,有好几个代码,因此需要使用 丶 这个字符来链接就像是下面这样子:

3

保存在dataset中的时候应该保存的是文本格式,而不是double(这是由于dataset中类型必须是一样的,第一字符如果是数字的话,第二个也会强制成为double类型的

增加了点功能:

老师需要在排好课后知道每个校区男生班、女生班、混合班各有多少个。

实现:

每次匹配到了课程代码后,就再进行一些匹配。

比较好的地方在于,老师排课使用的名称,男生班都很明显有个”“,而混合班和女生班是没有的,因此只要在匹配课程代码成功时,判断是否包含”男”即可判定是不是男生班

对于混合班和女生班则不一样,女生班很多是不存在”女”的,但是我发现一个比较明显的地方在于,混合班实际上很少,也就几个。上面那个图中,通过拼接在一起的,都是混合班。

因此我做了一个richTextBox,把目前已经知道的混合班初始化进去,并且可以手动的输入,这样子如果不是男生班,则循环匹配是不是混合班,如果还不是混合班,那么肯定就是女生班了

效果如下:

1

 

2

代码:

在原来的基础上,我在git上新建了一个分支,把master作为现在更新的分支,而more分支则是之前的代码。

 

4

 


更新分割线


 


前述:

在[SXWTaxCaculation个税计算 http://www.ptbird.cn/sxwtaxcaculation-open-blog/ ]中曾经提到过主要原出发点是因为体育部老师找我能不能帮忙用代码处理排课时候的一些麻烦事情,然后就促生了个税计算http://sxw.ptbird.cn 这个软件以及我自己的授权方式。

因为个税计算Excel版本目前暂不开源,还要付费授权,因此相关的代码细节没办法很好的展现出来,而基于对个税计算Excel版本的开发经历,让本来觉得无法实现教师排课助手也实现出来了,而且根据实际的使用情况,也很好的结合了C#操作Excel两种方式,即OLEDB和Range Cell方式。

场景:

说一下场景,学校教务处排课主要是看课程代码,因此部分负责老师在进行排课的时候不能简单地写上课程名字,还要写好课程代码。

也就是像下面这个图:

1

 

而老师用的是简称,比如 男篮(高) 表示的是男篮提高班,还有大一的课程和大二、三、四是不一样的

因此每次排课老师在排课的过程中都要仔细仔细再仔细的查看代码保证没有错误,这就是一件很蛋疼的事情。

实际上这种和个税计算的催生原因是一样的,人工总是会出错,而且要检查好几遍,而代码很大程度上规避这种人为的出错几率,你可以认为程序肯定不是100%的正确但是绝对是99%的不会出错。

目前排好课的excel表格如下图:现在是没有写课程代码的。

2

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值