基于Office软件的智能稿件登记送审软件设计
2014-07-16夏成锋
夏成锋
摘要:对于没有采用网络采编系统的期刊编辑常采用Office软件进行稿件登记、送审以及修改意见反馈等编辑工作,这种方法虽然直观但相对比较原始,不太智能。一些单机版稿件管理软件实现了部分采编系统的功能,可以完成稿件登记、审稿签生成等功能,但对现有的一些单机版稿件管理软件进行了试用,发现存在着操作复杂、与稿件处理流程不一致、样式不能修改等问题。通过试验,采用VC++操纵Word\Excel的编程方法,设计了一款智能、简单实用的稿件登记软件。实现了一些登记项目(稿件名称、作者、电话)的智能识别,采用拖曳的操作方式,以Word作为输出格式,对于稿件不很多的编辑十分实用。
关键词:编辑部;稿件登记;智能识别;VC++ ;Microsoft Office; VBA
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)14-3317-02
Abstract: Journal editors without network editing system for often used Office software for paper registration, peer review and feedback. This method is relatively straightforward, but original and not smart . Some stand-alone paper management software have a part function of the editing system such as paper registration and peer review sign generation, but after a trial for those software, it was found that operation was complex, manuscript processing was inconsistent with the processes , and the styles could not be modified . By experiment, a smart, simple and practical manuscript registration software was designed with VC + + manipulating Word \ Excel. The software could register projects (manuscript name, author, telephone ) by intelligent identification , is drag operated and take word as the output format. Its very practical for the editor with not too many paper to deal with.
Key words: paper registration; intelligent recognition; VC + +; Microsoft Office; VBA
对于期刊编辑部,传统的纸质稿件登记方式已经过时,现在许多期刊已经采用网络采编系统进行稿件登记送审,但还是有一部分编辑部采用电子邮件投稿,采用纸质或是Excel电子表格进行登记,利用Word生成审稿签。对于编辑个人来说,要管理好自己负责的那部分稿件,有必要对这部分稿件进行登记管理,确定稿件的处理状态,主要包括:稿件登记(稿件名称、作者、电话、收稿日期)和稿件送审(审稿人、审稿日期、结果),虽然这些登记(部分可以复制粘贴)并不是很复杂的事,但许多工作可以让计算机来做,最简单的,送审时间可以利用计算机生成。实际上网络上有些免费的稿件管理软件下载,但试用后发现都不太好用,主要问题:1)不够智能。所有的信息都重新录入,包括题目、作者,甚至部分软件连登记时间都要手工填写。2)不能定制。许多编辑部已经有固定的审稿签,而软件只能按固定样式。3)操作复杂。许多信息没什么必要录入。4)不实用,表现出对编辑流程不熟悉。发现还找不到一款简单实用的管理软件。作者从事编辑工作多年,对编辑审稿流程比较熟悉,同时熟悉VC++编程,因此想自行开发一款简单实用的稿件管理软件。在不断试验中发现,Word稿件的格式比较固定,标题、作者等项目都有一些共同性质,可以利用这些共性实现要登记项目的智能查找填写;直接编程代码比较多,打印的样式也不好控制,采用VC++控制Word文档不但可以利用Word VBA的一些函数,而且可以以Word任意样式输出,方便使用现有稿件登记系统的文档。经过试验,设计了一款简单实用的稿件登记使用软件,主要实现了以下功能:
1)智能识别论文名称。
2)基于Office软件,以Excel为数据库,以Word为输出格式。
3)操作简单,支持拖拽。
4)智能识别第一作者名。
5)智能识别手机号码。
6)部分登记项目的自动生成。
软件采用VC++ 6.0和Office 2003实现。
1 软件总体规划
编辑部稿件处理主要包括:稿件登记、送审、修改意见等。其中稿件登记需要登记来稿的基本信息(名称、日期、作者、电话等),需要一个数据库。送审需要专家库以及送审时间、处理结果等,也需要一个数据库。这里选用Excel作为数据库,其效率可能没有SQL等数据库高,但比较简单同时可以直接查看。审稿签各个编辑部有自己成型的样式,因此选用Word文档作为审稿签的输出格式。VC++采用自动化方法与Word通信,同时可以利用Word VBA的一些函数,减少编码。程序为VC对话框模式,布局如图1。endprint
部分内容智能识别,即使识别有误也可以直接修改,审稿日期等一般取当前时间。
2 关键技术
1)VC++与Word文档信息交流。采用自动化方法,为方便自建一个类,主要函数包括:
OpenDocument(CString fileName)(打开文档)、Sentence(int n)(取出第n句的字符串)、StrReplace(CString replaceStr,CString replaceStrWith)(字符串替换),主要变量为Word VBA的一些常见对象:Selection、Range、Find、Replacement、Sentences、Words。处理Word文档都是通过这个类。
2)VC++与Excel文档信息交流。采用CSpreadSheet库,Excel表格有2个sheet ,一个为稿件登记,一个为专家库。
3)论文名称的自动识别:工作中发现,绝大部分Word稿件的标题都是Word中首次出现的文字,标题完成后一般会回车到下一行。Word VBA中Sentences对象是以句号、回车等作为一句话的判别标志,因此只要取出Word稿件的第一个Sentences对象,其字符变量就是稿件的标题,为保险加上一个空白判断。经试验绝大部分Word稿件采用此方法可以准确识别标题。
4)第一作者姓名识别。作者名一般在标题名下一行或下二行,一般为两字或三字,不同作者名字以空格或逗号分开。因为作者名字为四字的比较少见,为减少复杂性,在此不考虑。因为名字间有符号,而有些二字名中间会加空格,因此取出该Sentences的前3个字符,不会取到第二作者的名,判断最后一个字符是否为中文字符,不是则去掉。经试验也能识别大部分姓名,但对于其它语种名、三字以上名以及三字名中有空格会识别有误。
5)手机号码。手机号码为1开头的11位数字,利用Word中Find对象,根据这两个特征很容易搜索到,正则表达也很简单。虽然搜索到的可能不是手机号而是这样特征的数据,但实际上这种可能很小,在实际应用中还没碰到过。
6)拖拽功能。首先将对话框置顶,其次响应拖拽消息OnDropFiles(HDROP hDropInfo)。
7)审稿签生成。审稿签一般期刊编辑部有固定格式,需要填写的项目包括:稿件名称、审稿人、审稿期限、当前日期。为了灵活利用这些固定样式,采用查找、替换的方式进行编程处理。在空白Word审稿签上将要填写的项目分别用aaa、bbb、ccc、ddd等稍微特殊一些的字符串填充,保存为只读文档,生成新审稿签只需要根据相应项目使用自建类的替换函数StrReplace(CString replaceStr,CString replaceStrWith)替换到相应位置即可。保存的审稿签以“审稿签(稿件名)”的方式自动命名,以区分不同的审稿内容。其它需要的单据都可以采用类似的方法处理。即使这些审稿签的样式和内容发生变更,但只填写项目不变,只需将相应项目对应的字符串移到新位置,就可以继续使用。
3 软件使用
软件打开后会前置到所有Windows窗口之上,将Word稿件按住鼠标左键拖入到软件界面上,一般能自动识别一些登记项目(如标题等),对于不能自动识别项目采用手工修改。审稿专家库需直接在Excel表格中录入。选择一篇文件后,通过下拉框选择合适的审稿人,可以生成Word格式审稿签也可以直接打印。稿件查询是通下拉框实现。在处理一定量的稿件后,宜将一部分Excel表格中的较老登记条目删除(不删除也可以,但稿件名下拉框条目太多,比较难找想找的稿件)。
4 小结
对一些免费的稿件管理软件进行了试用,发现其设计不太合理和智能。通过观察一般稿件的需登记项目的特点,采用合适的方法使稿件的登记智能化。同时充分利用Office VBA功能函数,使编程快速简洁。软件简洁直观,使用方便,避免了一些稿件登记系统的复杂。但是本软件也有一定的局限性,那就是稿件的处理量不能太大,功能上也相对简单。
参考文献:
[1] 刘彤,孙丽达,王小唯,等. Excel 2000 在稿件管理中的应用技巧[J].编辑学报,2003,15(3):202-203.
[2] Yap C W.CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet[CP/OL][2013-10-10].http://www.codeproject.com/Articles/1636/CSpreadSheet-A-Class-to-Read-and-Write-to-Excel-an.endprint
部分内容智能识别,即使识别有误也可以直接修改,审稿日期等一般取当前时间。
2 关键技术
1)VC++与Word文档信息交流。采用自动化方法,为方便自建一个类,主要函数包括:
OpenDocument(CString fileName)(打开文档)、Sentence(int n)(取出第n句的字符串)、StrReplace(CString replaceStr,CString replaceStrWith)(字符串替换),主要变量为Word VBA的一些常见对象:Selection、Range、Find、Replacement、Sentences、Words。处理Word文档都是通过这个类。
2)VC++与Excel文档信息交流。采用CSpreadSheet库,Excel表格有2个sheet ,一个为稿件登记,一个为专家库。
3)论文名称的自动识别:工作中发现,绝大部分Word稿件的标题都是Word中首次出现的文字,标题完成后一般会回车到下一行。Word VBA中Sentences对象是以句号、回车等作为一句话的判别标志,因此只要取出Word稿件的第一个Sentences对象,其字符变量就是稿件的标题,为保险加上一个空白判断。经试验绝大部分Word稿件采用此方法可以准确识别标题。
4)第一作者姓名识别。作者名一般在标题名下一行或下二行,一般为两字或三字,不同作者名字以空格或逗号分开。因为作者名字为四字的比较少见,为减少复杂性,在此不考虑。因为名字间有符号,而有些二字名中间会加空格,因此取出该Sentences的前3个字符,不会取到第二作者的名,判断最后一个字符是否为中文字符,不是则去掉。经试验也能识别大部分姓名,但对于其它语种名、三字以上名以及三字名中有空格会识别有误。
5)手机号码。手机号码为1开头的11位数字,利用Word中Find对象,根据这两个特征很容易搜索到,正则表达也很简单。虽然搜索到的可能不是手机号而是这样特征的数据,但实际上这种可能很小,在实际应用中还没碰到过。
6)拖拽功能。首先将对话框置顶,其次响应拖拽消息OnDropFiles(HDROP hDropInfo)。
7)审稿签生成。审稿签一般期刊编辑部有固定格式,需要填写的项目包括:稿件名称、审稿人、审稿期限、当前日期。为了灵活利用这些固定样式,采用查找、替换的方式进行编程处理。在空白Word审稿签上将要填写的项目分别用aaa、bbb、ccc、ddd等稍微特殊一些的字符串填充,保存为只读文档,生成新审稿签只需要根据相应项目使用自建类的替换函数StrReplace(CString replaceStr,CString replaceStrWith)替换到相应位置即可。保存的审稿签以“审稿签(稿件名)”的方式自动命名,以区分不同的审稿内容。其它需要的单据都可以采用类似的方法处理。即使这些审稿签的样式和内容发生变更,但只填写项目不变,只需将相应项目对应的字符串移到新位置,就可以继续使用。
3 软件使用
软件打开后会前置到所有Windows窗口之上,将Word稿件按住鼠标左键拖入到软件界面上,一般能自动识别一些登记项目(如标题等),对于不能自动识别项目采用手工修改。审稿专家库需直接在Excel表格中录入。选择一篇文件后,通过下拉框选择合适的审稿人,可以生成Word格式审稿签也可以直接打印。稿件查询是通下拉框实现。在处理一定量的稿件后,宜将一部分Excel表格中的较老登记条目删除(不删除也可以,但稿件名下拉框条目太多,比较难找想找的稿件)。
4 小结
对一些免费的稿件管理软件进行了试用,发现其设计不太合理和智能。通过观察一般稿件的需登记项目的特点,采用合适的方法使稿件的登记智能化。同时充分利用Office VBA功能函数,使编程快速简洁。软件简洁直观,使用方便,避免了一些稿件登记系统的复杂。但是本软件也有一定的局限性,那就是稿件的处理量不能太大,功能上也相对简单。
参考文献:
[1] 刘彤,孙丽达,王小唯,等. Excel 2000 在稿件管理中的应用技巧[J].编辑学报,2003,15(3):202-203.
[2] Yap C W.CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet[CP/OL][2013-10-10].http://www.codeproject.com/Articles/1636/CSpreadSheet-A-Class-to-Read-and-Write-to-Excel-an.endprint
部分内容智能识别,即使识别有误也可以直接修改,审稿日期等一般取当前时间。
2 关键技术
1)VC++与Word文档信息交流。采用自动化方法,为方便自建一个类,主要函数包括:
OpenDocument(CString fileName)(打开文档)、Sentence(int n)(取出第n句的字符串)、StrReplace(CString replaceStr,CString replaceStrWith)(字符串替换),主要变量为Word VBA的一些常见对象:Selection、Range、Find、Replacement、Sentences、Words。处理Word文档都是通过这个类。
2)VC++与Excel文档信息交流。采用CSpreadSheet库,Excel表格有2个sheet ,一个为稿件登记,一个为专家库。
3)论文名称的自动识别:工作中发现,绝大部分Word稿件的标题都是Word中首次出现的文字,标题完成后一般会回车到下一行。Word VBA中Sentences对象是以句号、回车等作为一句话的判别标志,因此只要取出Word稿件的第一个Sentences对象,其字符变量就是稿件的标题,为保险加上一个空白判断。经试验绝大部分Word稿件采用此方法可以准确识别标题。
4)第一作者姓名识别。作者名一般在标题名下一行或下二行,一般为两字或三字,不同作者名字以空格或逗号分开。因为作者名字为四字的比较少见,为减少复杂性,在此不考虑。因为名字间有符号,而有些二字名中间会加空格,因此取出该Sentences的前3个字符,不会取到第二作者的名,判断最后一个字符是否为中文字符,不是则去掉。经试验也能识别大部分姓名,但对于其它语种名、三字以上名以及三字名中有空格会识别有误。
5)手机号码。手机号码为1开头的11位数字,利用Word中Find对象,根据这两个特征很容易搜索到,正则表达也很简单。虽然搜索到的可能不是手机号而是这样特征的数据,但实际上这种可能很小,在实际应用中还没碰到过。
6)拖拽功能。首先将对话框置顶,其次响应拖拽消息OnDropFiles(HDROP hDropInfo)。
7)审稿签生成。审稿签一般期刊编辑部有固定格式,需要填写的项目包括:稿件名称、审稿人、审稿期限、当前日期。为了灵活利用这些固定样式,采用查找、替换的方式进行编程处理。在空白Word审稿签上将要填写的项目分别用aaa、bbb、ccc、ddd等稍微特殊一些的字符串填充,保存为只读文档,生成新审稿签只需要根据相应项目使用自建类的替换函数StrReplace(CString replaceStr,CString replaceStrWith)替换到相应位置即可。保存的审稿签以“审稿签(稿件名)”的方式自动命名,以区分不同的审稿内容。其它需要的单据都可以采用类似的方法处理。即使这些审稿签的样式和内容发生变更,但只填写项目不变,只需将相应项目对应的字符串移到新位置,就可以继续使用。
3 软件使用
软件打开后会前置到所有Windows窗口之上,将Word稿件按住鼠标左键拖入到软件界面上,一般能自动识别一些登记项目(如标题等),对于不能自动识别项目采用手工修改。审稿专家库需直接在Excel表格中录入。选择一篇文件后,通过下拉框选择合适的审稿人,可以生成Word格式审稿签也可以直接打印。稿件查询是通下拉框实现。在处理一定量的稿件后,宜将一部分Excel表格中的较老登记条目删除(不删除也可以,但稿件名下拉框条目太多,比较难找想找的稿件)。
4 小结
对一些免费的稿件管理软件进行了试用,发现其设计不太合理和智能。通过观察一般稿件的需登记项目的特点,采用合适的方法使稿件的登记智能化。同时充分利用Office VBA功能函数,使编程快速简洁。软件简洁直观,使用方便,避免了一些稿件登记系统的复杂。但是本软件也有一定的局限性,那就是稿件的处理量不能太大,功能上也相对简单。
参考文献:
[1] 刘彤,孙丽达,王小唯,等. Excel 2000 在稿件管理中的应用技巧[J].编辑学报,2003,15(3):202-203.
[2] Yap C W.CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet[CP/OL][2013-10-10].http://www.codeproject.com/Articles/1636/CSpreadSheet-A-Class-to-Read-and-Write-to-Excel-an.endprint