Office 主观题阅卷系统之Excel

时间:2024-02-25 17:16:52

   因工作原因,正在做一套Office主观题阅卷系统。系统采用的VB+XML,估计很多人会觉得这是一个很奇怪的组合。。。其实我也不想用VB来写,但是目前的实验室的机器大多还是2003年的,如果不是依靠无盘系统,这些机器早就应该进垃圾桶了。为了适应这种烂机器,不得不选择VB来做系统,也是基于这点选择的是XML。现在将整个系统设计大致描述,希望大家能够多多指教。

   要实现Excel主观题的自动审阅主要流程

   1)从XML中读取评分标准

       我在XML中包含了单元格位置(包含行和列),属性,得分,下面为xml的内容

1 <?xml version="1.0" encoding="gb2312"?>
2  <!--数据总汇池-->
3 <DataPool>
4 <Total>3</Total>
5 <!--数据索引-->
6 <!--此处为数据样板-->
7 <_1>
8 <Row>5</Row>
9 <Column>5</Column>
10 <Attribute>Formula</Attribute>
11 <Values>=(c5-15)*300</Values>
12 <Score>1</Score>
13 </_1>
14 <_2>
15 <Row>5</Row>
16 <Column>7</Column>
17 <Attribute>Formula</Attribute>
18 <Values>=e5+f5</Values>
19 <Score>1</Score>
20 </_2>
21 <_3>
22 <Row>1</Row>
23 <Column>1</Column>
24 <Attribute>HorizontalAlignment</Attribute>
25 <Values>1</Values>
26 <Score>1</Score>
27 </_3>
28 </DataPool>

     2)VB从XML中读取评分标准,在系统中我做了一个自定义数据类型来对应XML中的数据

1 Public Type xType
2 row As Integer
3 column As Integer
4 Abb As String
5 values As String
6 score As Integer
7 End Type

  

    3)VB从Excel中读取具体的单元格中的内容,然后和XML读出的评分标准比较,相同则得分,不相同则不得分。 

    VB操作XML和Excel的方法很多在这里我就不赘述了。

     可能比较麻烦的不知道Excel单元格属性具体名称叫什么?比如在某一个单元格设置条件格式,那么这个条件格式里面所设置的属性通过百度都很难查到。这个时候我们需要借助于Excel的宏。

     1)首先从Excel【工具】菜单中点击【宏】-【录制新宏】

     2)录制完成后,选择【宏】-【宏】点击如下图所示的编辑按钮

           

    3)出现VBA代码就可以从中找到需要的Excel的属性