余 磊
(淮北师范大学 计算机科学与技术学院,安徽 淮北 235000)
高校办公数据分割和格式化输出批处理方案的设计与VBA实现
余 磊
(淮北师范大学 计算机科学与技术学院,安徽 淮北 235000)
针对高校办公数据分割和排版批量处理过程中手工操作存在的步骤繁杂、效率低下和格式不一致等问题,以及常用数据处理办公软件在数据分割批处理功能上的不足,结合数据分割、排版等操作的特点和VBA在数据处理上的优势,给出数据分割和格式化输出的一种批处理方案,并运用VBA对其程序实现.试验结果表明,该方案不仅能够提高数据分割和格式化输出操作的便捷性和高效性,还能保障数据操作的安全性和正确度,以及数据输出的规范性和一致性.
办公数据;数据分割;格式化输出;批处理;VBA
社会信息化和数据库技术的发展,使得信息的处理和利用已经深入到高校管理的各个层次和方面,信息化管理已成为高校资源管理的主要形式和手段[1-6].学生、教师、教学、科研、财务、国资、实验设备、图书资料等一直为高校管理的主要对象,随着高校办学规模逐步扩大和办学条件逐渐改善,这些管理对象产生的数据不仅规模较大、类型较多、特征丰富、状态活跃,而且相互关系错综复杂,对这些数据的管理和加工已成为高校日常办公的主要内容.数据的动态多变性,办公事务的分解与归类,以及对办公文档的清晰规范性要求,使得数据分割与排版成为数据分类校对、审核和归档处理过程中的主要批量操作类型[7-8].
数据分割是一种数据加工处理的类型,以数据表为基础,数据记录和数据字段为基本单位,根据数据使用的需求目标,在保证数据安全性和保持记录使用价值的条件下,依据某一字段的不同取值,对所有数据进行分类存储的过程,在操作方式上具有复杂性和重复性的特征.
数据分割操作与文档排版一样,都是在办公软件提供的基本数据处理功能上,通过组合操作实现的,具有较强的针对性和灵活性.在现有的数据处理办公软件和数据管理客户端中,并没有提供现成的数据分割功能,当数据记录规模较大和数据输出需要格式化时,传统的手工操作方式耗时费力,而且无法保证数据的准确度和格式化输出的一致性.近年来,提高办公自动化效率的研究逐渐受到高校管理工作人员的重视,但关于数据分割和格式化输出的批处理方案研究和软件实现到目前还没有.
当前,Microsoft Office的MS Excel和WPS Office的WPS表格是高校办公数据加工处理使用的主要两款软件[9],在数据管理方面,既具有数据存储能力,又具有强大的数据处理功能;在用户接口方面,不仅操作简单、使用方便,而且与其它文档编辑软件和数据文件类型有着较好的兼容性;在功能扩展方面,为用户提供VBA编程环境,具有丰富的文档和数据处理接口函数,通过二次开发,能够有效增强数据加工处理的能力[10-11].
综上所述,根据数据分割和排版的操作特征,在现有的数据处理办公软件上,利用VBA提供的函数、窗口和控件等基本程序组件,完全能够实现数据分割和格式化输出的整合与批处理操作,以保障数据处理的高效性和操作的便捷性.
1.1.1 参照字段取值的提取
把数据分割所依据的字段称为参照字段,生成的记录集合称为数据子表.参照字段的取值是数据分割的基础,每种取值所包含的记录数,又是数据子表格式化设置的控制数据.对参照字段取值的提取,以及对不同取值记录数的统计,是数据分割和格式化输出批处理操作的前提.参照字段取值提取采用记录遍历的方法,既能确保字段取值提取的完备性,又能实现不同取值的记录数统计.参照字段不同取值与其所包含的记录数对应,使得参照字段取值集合在数据结构上具有二维性,在存储方式上可用二维数组实现.
1.1.2 数据分割
把数据分割所保留的字段称为有效字段,数据记录和有效字段的选择是数据分割的主要操作.数据的安全性是数据分割的前提条件,记录的选择可以借助现有办公软件的筛选功能实现,而且不会破坏数据表的完整性.现有的数据处理办公软件并不存在字段筛选功能,字段选择只能通过数据列删除功能实现,这样就会破坏基础数据表的完整性.在数据分割操作中必须通过数据备份来确保基础数据的安全性,数据备份可通过办公软件的数据表新建、数据复制和粘贴功能实现,但数据备份会影响到数据分割算法的空间复杂度.表1从数据表的完整性和数据备份量两个方面对数据分割不同操作顺序进行分析.结果表明,第3种方案既能保证数据表的安全性,还能有效降低数据分割算法的空间复杂度,为数据分割操作的最佳方案.
表1 数据分割操作顺序与数据表安全性和数据备份量之间的关系
1.1.3 格式化设置
格式化设置是对数据分割所产生的数据子表,按照办公文档清晰规范性的要求进行格式排版的操作,包括行列操作、数据处理、单元格设置和页面设置等基本操作.根据文档操作性质,可把数据表格式化操作主要分为修改、添加和设置3类(见表2).为了降低操作的冗余度和重复性,在格式化设置方面,应按照“先修改后添加再设置”和“先单元格后页面”的原则进行[12].
表2 格式化设置操作分类
1.1.4 数据子表的存储
数据子表的存储包括存储路径、文件的命名规则和文件的组织方式.文件的命名可采用参照字段取值与对应记录数组合的方式,这种命名方式既能够直观地反映数据内容的主要特征,又可以有效避免重名现象.在文件管理上还可借助参照字段的上级分类字段,利用VBA提供的文件接口函数,通过文件夹实现对数据子表更为直观、清晰地组织和管理.
1.2.1 全局变量
用于数据分割和格式化输出批处理操作的控制数据,在程序的全部范围内有效,必须通过全局变量来储存.科学合理的全局变量设计和组织方式可有效降低程序复杂度,增加程序的执行效率和程序的可读性[13].控制数据的作用、性质和组织结构决定变量的类型和变量的存储方式.对于性质单一的控制数据可采用单个变量存储;对于性质和作用相近的控制数据可采用一维数组存储;数据组织结构具有二维性的控制数据可采用二维数组存储.全局变量在设置上要遵循“最大共享度和最小冗余度”的原则,同时在使用上还要具有清晰性和可读性.根据全局变量的作用和设置原则,表3列出批处理程序中主要使用的全局变量类型和存储方式.
表3 全局变量的设置与组织方式
1.2.2 主要功能模块
根据函数或过程的功能和作用,实现数据分割和格式化操作的主要功能模块可分为初始化操作、数据分割、格式化设置、文件操作4大类型(见表4).
表4 程序主要功能函数模块的设置
1.2.3 程序操作界面设计
VBA环境具有窗体创建和菜单定义功能,为提高程序的灵活性和操作的便捷性,在程序调用接口上采用菜单的形式,在用户操作接口上采用对话框的形式.
(1)菜单设计.通过VBA自定义菜单,指定程序的主过程为其调用对象,然后加载于数据处理软件的菜单栏,以方便用户对程序的使用,图1为Excel2010加载程序后的主菜单.
图1 Excel2010加载程序后的主菜单
(2)对话框设计.对话框的内容包括数据分割设置、字段列参数设置和页面设置3部分,其中字段列参数设置需要对每个有效字段列进行格式参数设置,对话框界面布局如图2.
图2 数据分割与格式化输出的对话框界面
1.2.4 程序主过程
主过程为程序使用的用户接口,主要通过程序结构对主要功能函数和过程进行组织,实现数据分割和格式化输出的功能,图3为主过程的N-S流程图.
图3 主过程的N-S流程
1.2.5 程序代码
限于篇幅,只给出具有代表性的功能函数模块的VBA代码.
(1)参照字段取值提取函数模块.表5为参照字段取值提取函数主要参数表.
表5 参照字段取值提取函数主要参数
Public Functionfieldvalue_dist(book_name As Workbook,basefield As String,star_row As Integer,end_row As Integer,fieldnum_max as Intege)
Dim wsAs Worksheet
Dim i,j,flag As Integer
Public basfieldvalue_count as Integer
Public basefield_value(fieldnum_max,2) as String
Set ws=book_name.Worksheets(1)
basefieldvalue_count=0
For i=star_rowToend_row Step 1
flag=0
For j=1 Tofieldnum_maxStep 1
If Trim(ws.Cells(i,basefield).Value)=basefield_value(j,1) Then
basefield_value(j,2)=basefield_value(j,2)+1
flag=1
End If
Next j
If flag=0 Then
basefieldvalue_count=basefieldvalue_count+1
basefield_value(basefieldvalue_count,1)=Trim(ws.Cells(i,basefield).Value)
basefield_value(basefieldvalue_count,2)=cstr(val(basefield_value(basefieldvalue_count,2))+1)
End If
Next i
End Function
(2)单元格设置函数.表6为单元格设置函数的参数.
表6 单元格设置函数的参数
Private Sub cellvalue_set(book_name AsWorkbook,cell_colAsString,star_row AsInteger,cell_count As Integer,cell_font as String,font_size as Integer,font_colorindex as Integer,auto_wrap as Boolean,auto_fit as Boolean,cell_height As Integer,cell_weight As Integer,cell_Halign As Integer)
Dim str_rang As String
Dim myrange As Range
Dim i As Integer
For i=star_row To star_row+cell_countStep 1
str_range=cell_col&CStr(i)
Set myrange=book_name.Sheets(1).Range(str_range)
With myrange
.HorizontalAlignment=cell_Halign
.ColumnWidth=cell_weight
.RowHeight=cell_height
.Font.Name=cell_font
.Font.Size=font_size
.Font.Color=font_colorindex
.ShrinkToFit=auto_fit ′如果单元格显示不完全可以缩小显示
.WrapText=auto_wrap ′如果单元格显示不完全可以换行显示
End With
Set myrang=Nothing
Next i
End Function
试验采用手工操作和VBA批处理两种方式,对高校的科研成果数据进行分割和格式化输出,试验数据共4 100条记录,数据分割的参照字段为科研单位,试验共进行10次,结果取平均值,其中手工操作是在熟悉数据分割和格式化设置要求、经过操作训练的条件下进行的.表7给出手工和批处理操作在时间、准确率、数据安全性和格式化设置方面的试验结果.
表7 数据分割与格式化输出批处理操作与手工操作的试验结果
从试验结果可看出,相对手工操作,VBA批处理操作不仅能够大大提高数据分割和格式化输出的速度,确保数据处理的准确度,还能保障数据的安全性和文档格式的一致性.
数据分割和格式化输出批处理方案及其VBA程序,有效解决数据分类处理过程中人工操作存在的步骤繁琐、效率低下、格式不一致,以及无法保障数据处理的安全性和准确度等问题,大大提高办公的便捷性和高效性,为办公自动化的应用提供科学的方法参考和技术借鉴.数据分割和格式化设置是一种复合操作,受数据规范性和格式化需求的影响较大,设计一个通用性较强的数据分割和格式化输出批处理程序,还需要在全局变量、程序操作接口、基本函数模块等方面作进一步细化和扩充.VBA在综合办公软件基本功能,提升数据处理能力和效率方面具有显著的效果,在数据处理方面的应用也越来越广泛[14-18],但对工作人员的计算机技能和素养要求较高,为提高办公数据处理的水平和效率,在当前的高校信息化建设中,对工作人员的计算机应用技能培训力度还需进一步加强和提高.
[1]陈文相.高校固定资产信息化管理研究[J].实验室科学,2014(5):179-181.
[2]高凤新,卢士香.高校实验室仪器设备管理和使用的信息化建设[J].实验室研究与探索,2014(5):272-274.
[3]苏子微.高校人事管理工作信息化建设探析[J].西安邮电大学学报,2014(3):116-119.
[4]陈军.高校学生工作信息化管理初探[J].中国青年政治学院学报,2013(6):55-58.
[5]高福成.浅论高校教学管理信息化建设[J].教育理论与实践,2011(10):23-25.
[6]毛钟红.高校科研项目管理信息化建设探析[J].科技管理研究,2007(12):237-238.
[7]范雪峰.用VBA生成批处理文件实现按列批量重命名[J].办公自动化,2013(2):48-49.
[8]龚东,陈捷.基于Word VBA的文档批处理软件设计与实现[J].江西通信科技,2011(3):11-16.
[9]汪晴.办公软件 谁更风流?[J].中国经济和信息化,1999(10):63-63.
[10]李晓玫,杨小平.Excel中的VBA程序设计[J].四川师范大学学报(自然科学版),2004(4):423-426.
[11]技术宅.互相致敬 WPS也能媲美Office VBA[J].电脑爱好者,2015(5):13-14.
[12]王超.基于VBA技术的一键公文自动排版的实现[J].淮海工学院学报(自然科学版),2015(3):42-46.
[13]伏治军.一种节省全局变量内存空间的方法[P].广东:CN1851671,2006-10-25.
[14]王宏伟.Excel VBA在资产管理中的运用[J].电脑编程技巧与维护,2016(13):61-63.
[15]张祖芹,丁向民.试卷分析系统的Excel VBA实现[J].淮阴师范学院学报(自然科学版),2014(3):231-234.
[16]余磊,刘顺.高校毕业生信息采集数据规范性检测的VBA实现[J].滁州学院学报,2012(5):65-67.
[17]王鹏.基于VBA的Excel小型工资管理系统的设计与实现[J].烟台职业学院学报,2011(3):57-60.
[18]毛战军.利用VBA实现表格的自动填写[J].安庆师范学院学报(自然科学版),2010(4):119-121.
The Design and Implementation with VBA of Batch Scheme for the Dividing and Formatted Output on the University Office Data
YU Lei
(School of Computer Science&Technology,Huaibei Normal University,235000,Huaibei,Anhui,China)
Aiming at the defects existing in the manual operation for batch processing of data dividing and typesetting,such as complicated steps,low efficiency and inconsistent format,and the lack of common office software used for data processing in the batch processing function fordata dividing,and combined with the characteristics of data dividing and formatting,and the advantages of VBA in data processing,a batch pro⁃cessing scheme is proposed for the data dividing and formatted output,and is implemented by VBA.The fi⁃nal test results show that the scheme can not only improve the convenience and efficiency of data dividing and formatted output,but also guarantee the security and accuracy of data operation,as well as standardiza⁃tion and consistency of data output.
office data;data partitioning;formatted output;batch processing;VBA
TP 393
A
2095-0691(2017)04-0053-07
2017-02-21
2017年度高校优秀青年人才支持计划项目(gxyq2017154);2015年淮北市科技攻关计划项目(2015004)
余 磊(1978- ),男,安徽宿州人,副教授,硕士,研究方向:软件理论与应用、办公自动化、信息安全.