论文部分内容阅读
摘要:文章介绍了vb中将查询结果导入常用Office软件Excel中的方法及各项属性设置,并应用到教务管理系统中成绩的导出,达到成绩格式输出的规范、统一。
关键词:vb;查询;Excel
中图分类号:TP311.52文献标识码:A文章编号:1006-8937(2010)02-0095-02
一般情况下,系统开发浏览数据用到DataGrid控件和文本框显示数据库中的数据,当需要输出浏览或查询的结果时,我们采用以下几种方法:
①导出数据至Access,这仍然是一个数据库,是一个比较容易掌握的桌面式数据库;②输出数据至报表,如工资管理系统每月员工的工资,报表可以直接输出打印,固定的格式;③输出数据至EXCEL,电子表格,即可以用来再加工数据,也可以调整输出格式,灵活简便,熟悉的人较多;④输出数据至文文章件,文文章件只能保留纯文文章字,没有格式。
比较以上的几种方法,将浏览或查询的结果数据输出至EXCEL电子表格方法能灵活方便的满足系统使用者的需求,因此当系统开发者需要导出数据时通常优先考虑此种方法来开发系统。
1控制EXCEL基础
1.1新建工作表
①引用EXCEL对象选择“工程—引用”。
②声明对象变量并初始化。
Dim objExcel As Excel.Application'声明对象变量
Set objExcel = New Excel.Application '初始化对象变量
注意:此时objExcel还是一个excel的一个空壳,并无任何的工作簿与工作表,需要我们编写代码去给这个对象变量添加工作簿和工作表。
③添加工作簿与工作表。
objExcel.SheetsInNewWorkbook=3'将新建的工作表数量设置为3objExcel.Workbooks.Add'工作簿添加,工作簿中有3个工作表
在添加工作簿之前把默认值修改完成,即新工作簿内的工作表数为多少,根据需要修改SheetsInNewWorkbook属性值。默认添加的新工作表的名字是“sheet1”、“sheet2”、“sheet3”,如果需要方便系统使用者,可在开发时将工作表的名称修改好,减轻系统使用者的工作量,提高效率。如:
objExcel.Sheets(1).Name = "×××××"
objExcel.Sheets(2).Name = "×××××"
objExcel.Sheets(3).Name = "×××××"
④对象变量可见。
像其他对象变量一样,以上设置均在系统内存中,需要使用对象.visual=True显示在使用者面前,即objExcel.Visible = True。
1.2导入数据
新建工作表后,我们即可以向某个工作表中的某个单元格插入数据。
①确定活动工作表。
objExcel.WorkSheets (n).Activate’设置第n个工作表为活动工作表
②给单元格赋值。
objExcel.Cells(row,col).Value =写入单元格的值
注意:row为行数,即第几行,可以使用Excel中的行标,数字表示;col为列数,即第几列,不能使用Excel中的列标表示,只能用数字表示;如:
objExcel.Cells(1, 2).Value = 1111‘给第1行第2列的单元格赋数值1111
objExcel.Cells(3, 5).Value = “abcd”‘给第1行第2列的单元格赋字符串abcd
如果需要给大量的单元格赋值,我们可以采用循环来控制行号与列号,实现快速的完成数据的导入,在系统开发中,可以将查询的记录集通过循环全部填入单元格中。
1.3格式调整
顺利从vb导入数据至Excel后,为实现导入的数据统一、美观、整齐,可以对导入Excel中的数据格式进行调整,使得系统能更贴近用户,给用户带来方便与快捷。
①设置指定列的宽度、行的高度(单位:磅)。
objExcel.Columns(n).ColumnWidth=2‘设置第n行的高度为20磅
objExcel.Rows(m).RowHeight=10‘设置第m行的高度为10磅
②设置字体属性。
objExcel.Rows(n).Font.Name="宋体"‘设置第n行字体为宋体
objExcel.Rows(n).Font.Color=RGB(255,0,0)‘设置第n行字体颜色为红色
objExcel.Rows(n).Font.Bold=True ‘设置第n行字体加粗
objExcel.Rows(n).Font.Underline=True ‘设置第n行字体加下划线
③某一特定区域的选择。
在实际的系统开发过程中,单单的就某一行或者某一列进行格式的调整只是小区域的数据,而大区域采用以上的方法可能需要大量的代码及代码书写的时间,其实vb中也能像Excel中一样,同样可以用单元格的引用来控制某一个区域,这样可以方便自如的控制Excel。
objExcel.Range("A1: B2").Value =2222‘给A1: B2四个单元格赋值
objExcel.Range("A1: B2").Font.Name = "隶书" ‘设置A1: B2四个单元格字体为宋体
④页面设置。
对数据进行格式化后,为保证每位系统用户输出的数据为统一的样式,需要进行一定的页面设置,使得每位系统的使用者都能生成一样规格的打印数据。
设置页眉:
objExcel.ActiveSheet.PageSetup.CenterHeader = “报表演示”
设置页脚:
objExcel.ActiveSheet.PageSetup.CenterFooter =”第&P页”上边距Ncm:
objExcel.ActiveSheet.PageSetup.TopMargin = N/0.035;
下边距Ncm:
objExcel.ActiveSheet.PageSetup.BottomMargin = N/0.035;
左边距Ncm:
objExcel.ActiveSheet.PageSetup.LeftMargin = N/0.035;
右边距Ncm:
objExcel.ActiveSheet.PageSetup.RightMargin =N/0.035;
注意:以上的边距单位是磅,1磅=0.035cm,即1cm=1/0.035磅,所以要设置边距为2cm,需要单位转化。
2实例
在教务管理系统中,教务处能管理各个班级的学生的成绩,每位教师也可以对所教授班级进行管理,尤其是在期末考试后各位教师要给予成绩评定,成绩包括平时成绩、期中成绩、期末成绩,并由系统自动根据成绩所占百分比进行计算,得出每位同学的总成绩,教师在录入完成某门课程的学生成绩后能导入EXCEL,统一格式,打印输出,提交给教务处,教务处不仅具有电子数据,还保留纸质成绩单,以便备案查询,同时返回各个班级纸质成绩单,做到规范、统计、便捷,下图是某学院某教师将录入后的成绩导入EXCEL即将打印的成绩单。
将教务管理系统中的成绩单导入至EXCEL,操作简单、准确,也使得每位教师提交的成绩单格式统一、规范,大大减轻教师及教务部门工作人员的工作量。
程序界面可设计如图2所示。
制作一个“成绩单”菜单,用来打印导入至EXCEL打印,并可在打印前查看该课程成绩统计的结果,用柱形图来表示,如图3所示。
3结语
以上是ADO查询结果导入至EXCEL,制成电子表格的一个实例,在教务管理系统之中是输出数据不可缺少的一部分,它不仅仅在教务管理系统中适用,也可以借鉴到其他系统中用来输出数据,再加工数据,增加系统的实用性,同时也减轻编程者的编程压力,虽然数据的输出打印只是开发系统中一个很小的部分,但是我们应该为开发出更人性化的系统而不懈努力。
参考文献:
[1] 武红萍,孙德水.利用VB和Excel制作统计报表[J].电脑编程技巧与维护,2008,(11).
关键词:vb;查询;Excel
中图分类号:TP311.52文献标识码:A文章编号:1006-8937(2010)02-0095-02
一般情况下,系统开发浏览数据用到DataGrid控件和文本框显示数据库中的数据,当需要输出浏览或查询的结果时,我们采用以下几种方法:
①导出数据至Access,这仍然是一个数据库,是一个比较容易掌握的桌面式数据库;②输出数据至报表,如工资管理系统每月员工的工资,报表可以直接输出打印,固定的格式;③输出数据至EXCEL,电子表格,即可以用来再加工数据,也可以调整输出格式,灵活简便,熟悉的人较多;④输出数据至文文章件,文文章件只能保留纯文文章字,没有格式。
比较以上的几种方法,将浏览或查询的结果数据输出至EXCEL电子表格方法能灵活方便的满足系统使用者的需求,因此当系统开发者需要导出数据时通常优先考虑此种方法来开发系统。
1控制EXCEL基础
1.1新建工作表
①引用EXCEL对象选择“工程—引用”。
②声明对象变量并初始化。
Dim objExcel As Excel.Application'声明对象变量
Set objExcel = New Excel.Application '初始化对象变量
注意:此时objExcel还是一个excel的一个空壳,并无任何的工作簿与工作表,需要我们编写代码去给这个对象变量添加工作簿和工作表。
③添加工作簿与工作表。
objExcel.SheetsInNewWorkbook=3'将新建的工作表数量设置为3objExcel.Workbooks.Add'工作簿添加,工作簿中有3个工作表
在添加工作簿之前把默认值修改完成,即新工作簿内的工作表数为多少,根据需要修改SheetsInNewWorkbook属性值。默认添加的新工作表的名字是“sheet1”、“sheet2”、“sheet3”,如果需要方便系统使用者,可在开发时将工作表的名称修改好,减轻系统使用者的工作量,提高效率。如:
objExcel.Sheets(1).Name = "×××××"
objExcel.Sheets(2).Name = "×××××"
objExcel.Sheets(3).Name = "×××××"
④对象变量可见。
像其他对象变量一样,以上设置均在系统内存中,需要使用对象.visual=True显示在使用者面前,即objExcel.Visible = True。
1.2导入数据
新建工作表后,我们即可以向某个工作表中的某个单元格插入数据。
①确定活动工作表。
objExcel.WorkSheets (n).Activate’设置第n个工作表为活动工作表
②给单元格赋值。
objExcel.Cells(row,col).Value =写入单元格的值
注意:row为行数,即第几行,可以使用Excel中的行标,数字表示;col为列数,即第几列,不能使用Excel中的列标表示,只能用数字表示;如:
objExcel.Cells(1, 2).Value = 1111‘给第1行第2列的单元格赋数值1111
objExcel.Cells(3, 5).Value = “abcd”‘给第1行第2列的单元格赋字符串abcd
如果需要给大量的单元格赋值,我们可以采用循环来控制行号与列号,实现快速的完成数据的导入,在系统开发中,可以将查询的记录集通过循环全部填入单元格中。
1.3格式调整
顺利从vb导入数据至Excel后,为实现导入的数据统一、美观、整齐,可以对导入Excel中的数据格式进行调整,使得系统能更贴近用户,给用户带来方便与快捷。
①设置指定列的宽度、行的高度(单位:磅)。
objExcel.Columns(n).ColumnWidth=2‘设置第n行的高度为20磅
objExcel.Rows(m).RowHeight=10‘设置第m行的高度为10磅
②设置字体属性。
objExcel.Rows(n).Font.Name="宋体"‘设置第n行字体为宋体
objExcel.Rows(n).Font.Color=RGB(255,0,0)‘设置第n行字体颜色为红色
objExcel.Rows(n).Font.Bold=True ‘设置第n行字体加粗
objExcel.Rows(n).Font.Underline=True ‘设置第n行字体加下划线
③某一特定区域的选择。
在实际的系统开发过程中,单单的就某一行或者某一列进行格式的调整只是小区域的数据,而大区域采用以上的方法可能需要大量的代码及代码书写的时间,其实vb中也能像Excel中一样,同样可以用单元格的引用来控制某一个区域,这样可以方便自如的控制Excel。
objExcel.Range("A1: B2").Value =2222‘给A1: B2四个单元格赋值
objExcel.Range("A1: B2").Font.Name = "隶书" ‘设置A1: B2四个单元格字体为宋体
④页面设置。
对数据进行格式化后,为保证每位系统用户输出的数据为统一的样式,需要进行一定的页面设置,使得每位系统的使用者都能生成一样规格的打印数据。
设置页眉:
objExcel.ActiveSheet.PageSetup.CenterHeader = “报表演示”
设置页脚:
objExcel.ActiveSheet.PageSetup.CenterFooter =”第&P页”上边距Ncm:
objExcel.ActiveSheet.PageSetup.TopMargin = N/0.035;
下边距Ncm:
objExcel.ActiveSheet.PageSetup.BottomMargin = N/0.035;
左边距Ncm:
objExcel.ActiveSheet.PageSetup.LeftMargin = N/0.035;
右边距Ncm:
objExcel.ActiveSheet.PageSetup.RightMargin =N/0.035;
注意:以上的边距单位是磅,1磅=0.035cm,即1cm=1/0.035磅,所以要设置边距为2cm,需要单位转化。
2实例
在教务管理系统中,教务处能管理各个班级的学生的成绩,每位教师也可以对所教授班级进行管理,尤其是在期末考试后各位教师要给予成绩评定,成绩包括平时成绩、期中成绩、期末成绩,并由系统自动根据成绩所占百分比进行计算,得出每位同学的总成绩,教师在录入完成某门课程的学生成绩后能导入EXCEL,统一格式,打印输出,提交给教务处,教务处不仅具有电子数据,还保留纸质成绩单,以便备案查询,同时返回各个班级纸质成绩单,做到规范、统计、便捷,下图是某学院某教师将录入后的成绩导入EXCEL即将打印的成绩单。
将教务管理系统中的成绩单导入至EXCEL,操作简单、准确,也使得每位教师提交的成绩单格式统一、规范,大大减轻教师及教务部门工作人员的工作量。
程序界面可设计如图2所示。
制作一个“成绩单”菜单,用来打印导入至EXCEL打印,并可在打印前查看该课程成绩统计的结果,用柱形图来表示,如图3所示。
3结语
以上是ADO查询结果导入至EXCEL,制成电子表格的一个实例,在教务管理系统之中是输出数据不可缺少的一部分,它不仅仅在教务管理系统中适用,也可以借鉴到其他系统中用来输出数据,再加工数据,增加系统的实用性,同时也减轻编程者的编程压力,虽然数据的输出打印只是开发系统中一个很小的部分,但是我们应该为开发出更人性化的系统而不懈努力。
参考文献:
[1] 武红萍,孙德水.利用VB和Excel制作统计报表[J].电脑编程技巧与维护,2008,(11).