主题:请教各位老师,用pb做机考系统对word和excel及powerpoint的原理
bfdn
[专家分:10] 发布于 2006-11-03 16:15:00
现在正在做一个上机考试系统,考试科目是word,excel,powerpoint,想请教老师们,做这个系统对word,excel文件的评分原理是什么?不甚感激
回复列表 (共10个回复)
沙发
blackcao [专家分:200] 发布于 2006-11-07 15:28:00
看不懂你问的问题
板凳
bfdn [专家分:10] 发布于 2006-11-08 14:36:00
我说的是,你如果要给学生评分的话,怎么判断题的正误
3 楼
blackcao [专家分:200] 发布于 2006-11-13 12:40:00
卷子上填答案的位置肯定是固定的,PB可以读取word,excel各位置的答案做比较呀
4 楼
bfdn [专家分:10] 发布于 2006-11-14 09:34:00
是真的吗?能简单说一下吗?
5 楼
blackcao [专家分:200] 发布于 2006-11-15 12:31:00
OLEObject ole_object
ole_object = CREATE OLEObject
long li_ret
li_ret=ole_object.ConnectToNewObject( "excel.application" )
if li_ret <> 0 then
messagebox('系统信息','目标文件不存在!')
return 0
end if
ole_object.Application.Visible = false
pointer oldpointer
oldpointer = SetPointer(HourGlass!)
ole_object.Workbooks.Open(aspath)
ole_object.ActiveWorkBook.Sheets("sheet1").Select
ole_object.ActiveSheet.Cells(3,2).value = .... //往3行2列写
ole_object.ActiveSheet.Cells(3,3).value = ... //往3行3列写
ole_object.ActiveWorkBook.Sheets("sheet1").Select
ole_object.application.workbooks(1).save()
ole_object.application.workbooks(1).close()
ole_object.DisconnectObject()
destroy(ole_object)
setpointer(oldpointer)
**********************************************************************
下面的是一些通用的语法
Ole_object.Workbooks.add//新建一个Excel文件
Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件
Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表
Ole_object.Application.Run("MacroName")//运行宏
Ole_object.Application.Visible=TRUE//Excel文件可见
Ole_object.Application.ScreenUpdating=true//设置可见属性
②格式设置
Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整
Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽
Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高
Ole_object.Application.StandardFont="ArialNarrow";//设置字体
Ole_object.Application.StandardFontSize="8"//设置字号
Ole_object.ActiveSheet.Font.Size="8"//设置字号
Ole_object.ActiveSheet.Font.Bold=True//粗体
Ole_object.ActiveSheet.Font.Italic=True//斜体
Ole_object.ActiveSheet.Font.Underline=True//下划线
Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线
Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左
Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上
Ole_object.ActiveSheet.cells(2,1).font.name=’黑体’//设置字体
Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小
③工作区域操作:
Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值
Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格
Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6
右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操
作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线
④赋值操作
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名”
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1
Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01”
Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值
Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])”
6 楼
bfdn [专家分:10] 发布于 2006-11-16 09:32:00
谢谢楼上大哥,你讲的东西对我很有用,如果有相关的资料再给讲讲,如何来校对用户操作的excel文件,查看用户对文件编辑是否正确,应该是先有一个正确答案文件,然后用标准答案和用户的答案相比对,这样如何比对呢?楼上大哥我对这一块没有头绪,望指教.您有QQ吗,请告诉我
7 楼
blackcao [专家分:200] 发布于 2006-11-16 09:55:00
同时打开两个excel就行了呀
或是先把正确答案的excel打开,把答案赋给变量,关闭,再打开测试卷取数对比
你要是做评分系统的话,应该专门有表存正确答案吧
有问题就发贴吧,大家都会帮你的,我不用QQ
而且我也不是很厉害,呵呵
8 楼
bfdn [专家分:10] 发布于 2006-11-16 10:03:00
好的,不过如果有图表应该怎么办,word怎么实现标准答案和用户试卷的对较,怎么处理格式正确的校对呢?谢谢,对了您进行过相关的这种软件的开发吗?
9 楼
blackcao [专家分:200] 发布于 2006-11-16 11:49:00
word没用过
我只是往外导数据,制表用过excel这些
10 楼
bfdn [专家分:10] 发布于 2006-11-17 09:07:00
有了解这方面的老题希望能继续跟帖
我来回复