摘 要: 讲述了在建立数据库和SQL查询的基础上,使用程序方法访问数据库中的表和查询,同时引用电子表格文件作为对象,对其进行自动填写的思路和实现方法。将该方法与电子表格内嵌公式和程序的传统方法进行了对贴片电感器比。最后使用该方法实现了对机场气候表的自动填写。
关键词: 电子表格; 数据库访问; Excel引用; 民航气象
制作填写电子表格在今天已是一项非常常见的工作了。很多时候,都需要将手头的数据统计汇总填写成表格样式以供阅读和报告。为了完成复杂一些的功能,需要在电子表格中嵌入公式和程序代码,以减少人工的工作量,并减少错误的发生,提高工作效率[1-2]。鉴于Microsoft Excel电子表格软件的强大功能,它基本成为电子表格的代名词,因此,以下主要以Excel为例进行讨论。
然而,在Excel表格中嵌入公式和程序代码(经常也被称为宏)会带来一些其他的问题。例如运行效率不高,在代码比较多时,会使电子表格文件变得很大,不利于发布和交换等。
1 电子表格中嵌入公式和程序代码的不足
内嵌公式和程序代码的电子表格有它的好处,首先不需要安装任何软件,交换文件的同时就相当于交换了程序。然而,表数量多、代码量较大时,就会存在下面的不足:(1) 电子表格文件变大
虽然简单的代码不会造成这种情况,或者说无关紧要,但当http://www.szfpc.net/扁平线圈电感需要完成的计算和填写代码很多(往往表格只有几百千字节的文件,加上代码后就会有几兆字节)时,对交换和保存这类表格文件显然不利。
(2) 嵌入代码不利于使用
当电子表格制作完成,就会将其文件用于发布和交换。这时大多数使用文件的人都是非专业人员,一旦打开文件时提示是否启用宏时,他们往往会不知所措;另一方面,启用内嵌代码可能被人利用,增加恶意代码,造成真正对计算机的危害;最后,内嵌的公式往往效率不高,其计算结果不易使用。
(3) 开发、调试困难
少量的程序代码不会存在这样的问题,但当代码很多时,就会发现Excel内嵌的那个VBA功能不够,调试也不方便,完全无法与Visual Studio这样的开发工具相提并论,使得效率大大下降,今后的维护也十分困难。
2 另一种填写电子表格的思路
大多数时,发布和交换电子表格只是作为一种可视化的资料保存或查阅,这时内嵌的公式和程序代码就成了负担。因此,考虑另一种思路,将电子表格只是作为模板,不使用内嵌的公式或程序代码进行统计计算,在数据库中使用SQL查询进行统计、计算,另外编写程序访问数据库中的查询,在程序中引用电子表格文件作为对象,将查询结果填写到电子表格文件中。两种方式的对比如图1所示。
3 电子表格自动填写的实现
如上所述,需要分三步实现,首先要制作最终的输出表格,之后需要建立好数据库,并在数据库中建立SQL查询以完成主要的统计计算;最后编写程序访问数据库,并引用电子表格文件进行自动填写。
3.1 模板中表格一致性的程序实现
首先设计表格的样式,如果有类似的表格只需要复制后稍加修改即可。然而,经验表明,往往在调试程序时,还需要更改表格中的样式,这时又要进行前述的重复工作,这种工作在程序开发和调试过程中还要反复进行。因此,宜使用程序来对表格的样式进行修改。
以Visual Basic 2008为例,要访问电子表格文件,需在工程中添加引用COM中的Microsoft Excel,并选中命名空间Microsoft.Office.Interop(若存在的话)。示例1过程更改电子表格文件中的全部表显示大小为100%,更改每个表第一行单元格格式为合并居中并自动缩小字体填充,显示一位小数。
示例代码1:
Sub RegSheets()
Dim a As New Excel.Application
Dim b As Excel.Workbook = a.Workbooks.Open
(“电子表格的文件名”)
For Each sht As Excel.Worksheet In b.Sheets
sht.Activate()
‘不能省略,Excel仅对活动工作表操作
a.ActiveWindow.Zoom = 100
s= "A1:" & Chr(64 + sht.UsedRange.Columns.
Count) & "1"
a.Range(s).Select() 大功率电感厂家 |大电流电感工厂