基础:如何用Excel编排毕业证书号
每年高等学校学生毕业时,我们都要按省教育主管部门的要求,依照统一的格式上报毕业生登记表。现在,大多数学校都使用Excel来进行学生资料的日常统计,学生毕业时再进行分类汇总,但毕业证书号的编排在Excel中无法实现,怎么办呢?
存在的问题
这里我们以“辽宁省成人高等教育毕业生成绩登记表”为例。在“辽宁省成人高等教育毕业生成绩登记表”中,毕业证书的编号要求必须是17位顺序编码。很多人自然会想到可以使用Excel中的自动序列的填充功能,但当我们在单元格内输入17位毕业证书号时却显示成“1.17795E+16”,因为在Excel中,数值型数据超过12位时,就会以指数形式来表示。
于是我们又把整列单元格的数据类型定义成文本型,在连续的两个单元格中输入了两个连续的毕业证书号。但当我们拖动填充柄时,毕业证书号并没有像我们希望的那样顺序编码,而是这两个连续的毕业证书号交替出现。这下可惨了,2000多名毕业生的毕业证书号难道要一个一个输入?以前手工操作的时候我们可是集中了学校里写字比较好的人一个一个书写的。使用计算机的目的之一就是要提高工作效率,一定会有办法,只不过我们还没有找到。
解决方法
我们带着这种想法,经过反复琢磨、反复尝试,终于找到一种简单的办法。现将这种方法加以总结,供大家参考。
1. 在Excel 2000中将登记表中除毕业证书编号以外的其他数据编辑好。表头部分不要做单元格的合并,以单一字段名排列。然后将该工作表另存为“*.dbf”文件。本例中我们将该文件保存在D:byzs,文件名Zsbh.dbf。在VFP 6.0中打开这个表,将“毕业证书号”定义为字符型,20个宽度。
2. 在VFP 6.0中编制下面小程序:
Use d:byzszsbh.dbf '打开.dbf文件
M=117795200 '按标准格式的要求,证书编号的前9位值是固定不变的
N=20600647 '第一个证书编号
Go 1
Do .not.eof() '使用循环语句,逐条记录替换
Repl 毕业证书号with str(m,9)+str(n,8) '将数值型数据转化成字符型
N=N+1
Skip
Enddo
运行该程序,再打开表查看,我们惊喜地发现,毕业证书号已经按我们的要求编码完毕。在这个程序中,我们把毕业证书号截成两段,用两个变量来表示。如果使用一个变量表示,程序可以改成下面的形式,但毕业证书号的排列也变成了科学记数法的形式。所以在实际编排毕业证书号码时,要根据号码的变化规律将号码分解。
Use d:byzszsbh.dbf
M=11779520020600647
Go 1
Do while .not.eof()
Repl zsbh with str(m,9)
m=m+1
Skip
Enddo
3. 在VFP 6.0中选择文件菜单中的“导出”命令,将“*.dbf”导出,导出的类型为“Microsoft excel 5.0(xls)”文件。保存在d:byzs下,文件名为djb.xls。
4. 在Excel 2000中打开在VFP 6.0中导出的Excel文件djb.xls。按省教育主管部门的要求编辑好表头。
使用Excel 2000和VFP 6.0这两个,不仅可以编排毕业证书号。其他号码如准考证号编排也可以按照上述方法实现。