




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Excel自动化生成代码开发部 寇增伟2015年1月31日【摘要】随着社会的进步和发展,各种工具出现对代码进行封装,使得开发工作变得越来越简单,正在逐渐向自动化、流水线的方向过渡。对于公司软件项目而言,一般是针对企业级应用进行系统开发,而对企业而言,其管理模式和软件需求都大同小异,很多功能和实现都比较类似。所以,开发工作主要的工作量就放在一些数据库表的定义和相关字段在前后台的显示和处理上。所以,如何最大化的提高工作效率,降低工作时间,成为设计此工具的出发点。【关键词】Excel 代码 模块 程序 一、 问题的提出随着社会的进步和发展,各种工具出现对代码进行封装,使得开发工作变得越来越简单,正在
2、逐渐向自动化、流水线的方向过渡。对于公司软件项目而言,一般是针对企业级应用进行系统开发,而对企业而言,其管理模式和软件需求都大同小异,很多功能和实现都比较类似。所以,开发工作主要的工作量就放在一些数据库表的定义和相关字段在前后台的显示和处理上。所以,如何最大化的提高工作效率,降低工作时间,成为设计此工具的出发点。二、 解决思路以及实践我们在设计数据库文档时,设计了数据库表,编程人员就开始根据数据库文档进行实现,需要在数据库建表和字段,以及程序里面实现字段相关代码。下面拿一个简单的表格来说明问题。对于商圈调查表t_business_circles,数据库定义的几个字段如下(只为说明问题,所以力求
3、简化)。序号字段名称字段描述字段类型长度允许空缺省值1busi_circles_no商圈调研varchar19,02city地市int5,0我们程序实现里需要添加的字段相关的代码如下所示:l TBusinessCirclesMapper.xml数据库和实体对应的相关代码有四个地方: 1. 2. BUSI_CIRCLES_NO,CITY, 3. #busiCirclesNo,jdbcType=VARCHAR,#city,jdbcType=INTEGER, 4. BUSI_CIRCLES_NO=#busiCirclesNo,jdbcType=VARCHAR,CITY=#city,jdbcType=
4、INTEGER,l TBusinessCircles.java实体定义相关代码:private String busiCirclesNo;private Integer city;public String getBusiCirclesNo() return busiCirclesNo;public void setBusiCirclesNo(String busiCirclesNo) this.busiCirclesNo = busiCirclesNo;public Integer getCity() return city;public void setCity(Integer city)
5、 this.city = city;l 界面增删改查相关代码,分别定义在不同文件中,这里统一描述:1. 增加2. 修改3. 列表商圈调查编号城市名称 $bus.busiCirclesNo$bus.city4. 查看商圈调查编号:$bus.busiCirclesNo城市名称:$bus.city从上面程序来看,系统里面字段相关的程序代码有十来处(这里只描述基本需求,若加入一些特殊需求如导入导出等会更多)。上面只列举了一张表,如果一个系统表格很多,并且每个表字段很多,动辄上百个。那么机械的手工敲入代码,或单字段拷贝,将是非常机械、繁琐的体力劳动。会花费大量时间来做这项工作。因为工作的机械和繁琐,开发
6、人员的注意力不能一直高度集中。所以往往会出现表字段的拼写错误、大小写不一致、标点符号的半角全角录入问题,而这一类问题往往非常难以排查,常常花上十倍甚至以上的时间最终定位到是某字段的拼写错误。如果使用单个字段拷贝粘贴,可以避免拼写错误,但是也不能排除拷贝过程中的选择疏忽,少或多拷贝某个字母或空格。而且一个字段一个字段的拷贝粘贴也是非常繁琐的。如何解决这个问题?能否一劳永逸,一张数据库表字段在设计阶段(设计文档编写)录入以后,能够自动生成所有以表格为颗粒度的程序代码?我们一次拷贝生成整张表格所有字段的相关代码,从而将工作核心集中到设计和逻辑优化上,形成更好的良性循环。经过探索和实践,完全可行。首先
7、我们在代码生成器里面,开始定义数据库表名称和字段,具体字段定义包括三项:类型、中文和文档定义。默认类型V表示字符串类型,在数据库相关XML文件里翻译为VARCHAR类型,在程序里面翻译为“String”默认类型N表示数值类型,在数据库相关XML文件里翻译为INTEGER类型,在程序里面翻译为“Integer”文档定义“busi_cirecles_no”为详细设计文档里面的字段定义,在数据库为全大写,但是文档里面便于标识采用全小写。首先,简单实现由文档定义的“busi_cirecles_no”变为数据库字段“BUSI_CIRCLES_NO”。这在EXCLE里面一个函数“UPPER()”就可以实现
8、,所以我们在E3列直接输入代码“=UPPER(D3)”,就会自动生成数据库字段全大写的形式,下面同一表格中的所有数据库字段生成,只需要点击E3右下角,当显示的“箭头的十字星”变为“十字星”后,直接向下拖动,生成所有字段的数据库字段。其他语句的实现方式和上面类似,只是输入的程序代码略有不同。这时,我们可能会有疑问,我只需要产生字段相关的几行代码,而现在需要程序代码那么复杂,我怎么知道如何写EXCEL里面的程序代码?这个最简单的方式是直接百度,会找到适合你的程序代码段,考贝后略微改动即可以使用。不过自己直接实现代码也非常简单。下面简单介绍一行语句的实现步骤。例如:我们要实现一行代码“”1. 首先我
9、们在程序中写好这行代码,并保证代码正确无误。2. 提取里面字段相关的名称用在EXCEL表里位置替换,例如busiCirclesNo 在F3位置,改写代码为:“”3. 因为程序里面“”在EXCEL是关键字,所以要把程序里面的双引号替换为CHAR(34),我们这里替换为&CHAR(34)&,前后加了两个连接符,改写代码为:“”4. 把没有改写的部分作为字符串加双引号,并在最前面加“=”,完成代码编写。如果代码中没有“”,将字段中间的字符串用“&”链接即可。更近一步,如何实现多行语句的EXCEL编程?比如我们要一步实现下面函数:public String getCity() return busiC
10、irclesNo;public void setCity(String busiCirclesNo) this.busiCirclesNo = busiCirclesNo;采用方法类似,首先将程序语句由多行变为一行,然后进行上面的替换步骤生成程序代码,具体程序代码如下:=public &IF(B3=V, String ,IF(B3=N, Integer )& get&UPPER(LEFT(F3,1) & RIGHT(F3,LEN(F3)-1)&() return &F3&; &public void set&UPPER(LEFT(F3,1) & RIGHT(F3,LEN(F3)-1)&(&IF
11、(B3=V, String ,IF(B3=N, Integer )& &F3&) this.&F3& = &F3&; 生成的实际可执行的程序代码如表格中的P3单元格,将此行代码考入程序中,然后选择右键-”Source”-”Format”。将拷贝的一行代码格式化为上面多行代码形式。当然,在Eclipse里面GET/SET可以根据私有变量定义自动生成,这里仅仅以此作为例子表现多行代码的实现过程。文章一开始提到的我们要实现的各个模块的语句和方法如下所示:字段定义和数据库相关操作语句界面定义和实体定义在实际编写代码过程中,因一些大小写的问题使得要编写的程序代码比较复杂,最简单的方式仍然是采用上面的逐渐
12、替换法。然后将最后需要特殊处理的大小写的字段找到相应代码后自己替换即可。这些相应代码可以在网上百度直接获得。比如: 我们要将“busiCirclesNo”,实现成“setBusiCirclesNo”的形式表示这个函数,那么主要目标就是如何将“busiCirclesNo”替换为“BusiCirclesNo”,这个直接在百度输入“excel 其他字母不变 首字母大写”马上找到答案,如下所示,直接替换即可。首字母变大写:=upper(left(a3,1) & right(a3,len(a3)-1)程序中所有字段相关的代码,都可以用上面方式实现,如果表比较复杂,有上百个字段,我们设计好一个字段相关的程
13、序代码后,直接一次拖动产生所有字段的各个程序模块中的相关程序代码,然后从EXCEL竖向拷贝所有该表的代码到程序中,完成一张表的所有字段处理语句的代码编写。机器的准确性规避了前期手工敲入导致拼写错误存在的问题,并且减少了拷贝粘贴的次数。另外,如果需求有变更,文档和程序都需要更新时,仅需要维护这份Excel,将工具中的文档定义字段进行更新,其余部分的语句都是自动更新生成,完成所有语句的修改操作,将修改后的代码直接拷贝到程序中即可。三、注意事项在实际应用中,有两类问题需要注意:1. 实际程序开发过程中,所有数据库表的字段变动,比如增加、删除和改名。都需要维护此EXCEL表,保证此EXCEL表字段定义是最新的,避免用旧的字段代码覆盖前期改动。2. EXCEL拷贝字段到数据库时,需要直接进入EXCEL单元格拷贝字段。否则可能因EXCEL格式问题在数据库中添加双引号或空格。四、效果评价在实际开发工作中,我们逐渐完善和修改这个EXCEL表格,在数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清水工程整治方案(3篇)
- 没付工资解除合同协议4篇
- 砌体工程缺陷修补方案(3篇)
- 2025年教师招聘之《幼儿教师招聘》模拟题附答案详解(考试直接用)
- 幕墙工程安全生产方案(3篇)
- 2025年成人教育平台运营绩效评估体系构建与实施报告
- 2025年海洋能发电技术在海岛能源供应中的分布式能源应用
- 天然气净化操作工转正考核试卷及答案
- 驳筑、集拆坨盐工工艺考核试卷及答案
- 2025年氢燃料电池汽车关键零部件国产化技术路线图深度分析报告
- 2025年度全国保密教育线上培训考试题库及答案(完整版)
- 预防交通事故知识培训课件
- 题型专攻:平行线分线段成比例【八大题型】(原卷版)
- 个人车辆租车合同4篇
- 妊娠合并心脏病及课件
- 私募股权投资基金激励制度(包含募资奖励、投成奖励、退出奖励等)
- 现代写作教程全套课件
- 幸福中国一起走总谱图片格式-总谱
- 2022版《语文课程标准》
- 机械优化设计完整版PPT课件.ppt
- 人教版物理九年级上册全册PPT课件
评论
0/150
提交评论