国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

用VB調(diào)用Excel實(shí)現(xiàn)SPD表自動(dòng)編制

2014-04-29 00:44:03劉紅坤孟德東王小麗
計(jì)算機(jī)時(shí)代 2014年1期

劉紅坤 孟德東 王小麗

摘 要: 檢測(cè)電涌保護(hù)器(Surge Protection Device,SPD)時(shí),采集到的批量數(shù)據(jù)需要自動(dòng)表格化,針對(duì)此問(wèn)題,提出了在Visual Basic(簡(jiǎn)稱(chēng)VB)環(huán)境下調(diào)用Excel對(duì)象編程實(shí)現(xiàn)自動(dòng)制SPD表的方法。分析了VB調(diào)用Excel的理論依據(jù)和步驟,闡述了自動(dòng)繪制SPD表的主要設(shè)計(jì)思想,剖析了自動(dòng)繪制SPD表的關(guān)鍵技術(shù)。實(shí)踐證明,此方法可行且有效。

關(guān)鍵詞: SPD; VB; Excel; 自動(dòng)制表

中圖分類(lèi)號(hào):TP399 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)01-42-02

0 引言

VB是Windows應(yīng)用程序強(qiáng)有力的開(kāi)發(fā)工具,具有強(qiáng)大的數(shù)據(jù)處理功能,但VB的報(bào)表功能比較弱。而Excel的表格生成功能十分強(qiáng)大且便利,是一個(gè)強(qiáng)有力的信息分析與處理工具,又因?yàn)镋xcel的應(yīng)用程序?qū)ο笫峭獠靠蓜?chuàng)建對(duì)象,所以可以用VB應(yīng)用程序來(lái)操作Excel,通過(guò)兩者結(jié)合,能夠快速、簡(jiǎn)便地生成復(fù)雜的表格。本文通過(guò)自動(dòng)生成SPD表的實(shí)例來(lái)說(shuō)明VB控制Excel的具體過(guò)程,實(shí)現(xiàn)海量的SPD檢測(cè)數(shù)據(jù)類(lèi)型表的形成[1-2]。

1 Excel對(duì)象模型

為了在VB應(yīng)用程序中調(diào)用Excel,必須要了解Excel對(duì)象模型。Excel對(duì)象模型描述了Excel的理論結(jié)構(gòu),所提供的對(duì)象很多,例如:透視表、圖表等對(duì)象,下面將對(duì)VB調(diào)用Excel的最重要且常用對(duì)象作簡(jiǎn)要介紹[2-4]。

⑴ Application對(duì)象

Application對(duì)象是Excel對(duì)象模型的頂層,表示整個(gè)Excel應(yīng)用程序。在VB應(yīng)用程序中調(diào)用Excel,就是使用Application對(duì)象的方法、屬性和事件。

⑵ Workbook 對(duì)象

Workbook對(duì)象直接隸屬于Application對(duì)象的下層,表示一個(gè)Excel工作薄文件。Workbook對(duì)象的集合構(gòu)成Workbooks對(duì)象??梢酝ㄟ^(guò)Workbooks集合或表示當(dāng)前活動(dòng)工作薄的Active Workbook對(duì)象訪問(wèn)Workbook對(duì)象。

⑶ Worksheet對(duì)象

Worksheet對(duì)象包含于Workbook對(duì)象中,表示一個(gè)Excel工作表??梢酝ㄟ^(guò)Worksheets集合來(lái)訪問(wèn)、激活、增加、刪除、更名工作表。

⑷ Range對(duì)象

Range對(duì)象代表工作表的某一個(gè)或多個(gè)單元格、某一選定區(qū)域等。

⑸ Cells對(duì)象

Cells對(duì)象包含于Worksheet對(duì)象中,表示Excel工作表中的一個(gè)單元格。

2 在VB編程環(huán)境中調(diào)用Excel對(duì)象

2.1 在VB中添加對(duì)Excel類(lèi)型庫(kù)的引用

為了使VB應(yīng)用程序能夠訪問(wèn)Excel提供的類(lèi)型庫(kù),需要設(shè)置對(duì)Excel類(lèi)型庫(kù)的引用,在VB6的“工程菜單中選擇“引用”,在對(duì)話框中選中“Microsoft Excel 10.0 Object Library”,單擊“確定”按鈕即可。

2.2 在VB中聲明各對(duì)象

為了能對(duì)Excel操作,用VB編程時(shí)首先應(yīng)對(duì)Excel及其工作薄、工作表等對(duì)象進(jìn)行聲明。聲明如下:

Dim biaoapp As Excel.Application 'Excel對(duì)象

Dim biaobook As Excel.Workbook '工作簿

Dim biaosheet As Excel.Worksheet '工作表

2.3 在VB中使用對(duì)象變量創(chuàng)建Excel對(duì)象的引用

在聲明對(duì)象變量之后,可用CreateObject函數(shù)或GetObject函數(shù)給變量賦值或引用已存在的Appliction對(duì)象。

Set biaoapp=CreateObject("Excel.Application") '創(chuàng)建Excel對(duì)象

Set biaobook=biaoapp.Workbooks.Add

Set biaosheet=biaobook.Worksheets(1)

將對(duì)象引用賦予變量后,就可以在VB程序中使用Excel對(duì)象的方法和屬性了,根據(jù)需要對(duì)Excel對(duì)象進(jìn)行各種操作。

2.4 關(guān)閉Excel,釋放引用對(duì)象

在VB程序中創(chuàng)建完對(duì)象引用后,使用對(duì)象的方法、屬性和事件后,應(yīng)該從內(nèi)存中釋放該對(duì)象,通過(guò)以下語(yǔ)句來(lái)實(shí)現(xiàn):

biaoapp.Quit '結(jié)束Excel對(duì)象

biaoapp.Workbooks.Close

Set biaoapp=Nothing

Set biaobook=Nothing

Set biaosheet=Nothing

3 VB調(diào)用Excel自動(dòng)制表的設(shè)計(jì)思想

在SPD的實(shí)驗(yàn)檢測(cè)中,需要采集SPD的常規(guī)參數(shù)和電參數(shù)數(shù)據(jù)。當(dāng)有批量的SPD需要檢測(cè)時(shí),采用人工記錄大量數(shù)據(jù)的方式,若采集結(jié)果散亂無(wú)頭緒,將會(huì)對(duì)下一步的數(shù)據(jù)處理分析工作帶來(lái)極大的不便。如果采用自動(dòng)生成表格的方式分類(lèi)記錄數(shù)據(jù),使格式統(tǒng)一,明了清晰,則可以快速檢索出所需數(shù)據(jù)并進(jìn)行加工處理。還可根據(jù)需求將采集到的數(shù)據(jù)以數(shù)據(jù)庫(kù)的形式存儲(chǔ),再?gòu)膸?kù)中查詢(xún)到所需數(shù)據(jù),自動(dòng)生成數(shù)據(jù)電子表格。

Microsoft公司的表格處理軟件Excel,在表格方面有強(qiáng)大的功能,但需要人工編輯、操作才能完成表格的制作。而VB的可擴(kuò)展性,使調(diào)用Excel很方便。因此我們可通過(guò)VB6編程直接控制Excel的程序,從而實(shí)現(xiàn)自動(dòng)制表的功能。VB6.0以上版本提供了Excel對(duì)象,利用它可將數(shù)據(jù)庫(kù)直接導(dǎo)入Excel工作薄中,然后編程操作,最后輸出所需格式的表格。

4 實(shí)例說(shuō)明用VB調(diào)用Excel完成自動(dòng)制表的關(guān)鍵技術(shù)

4.1 設(shè)置SPD常規(guī)參數(shù)表

在SPD檢測(cè)中,必需記錄SPD標(biāo)稱(chēng)放電電流、最大放電電流、最大持續(xù)工作電壓、電壓保護(hù)水平等參數(shù)值,因不同型號(hào)的SPD上述參數(shù)值各異,因此有必要設(shè)置SPD常規(guī)參數(shù)表。代碼如下:

……

u=1 '定義初始行

v=1

For biaoline=u To u+1

h=1

biaosheet.Rows(biaoline).RowHeight=25 '定義行高

For biaocolu=v To v+6

With biaosheet

.Range(.Cells(biaoline,h), .Cells(biaoline,h+1))

.MergeCells()=True

'每2個(gè)單元格合并為一個(gè)

.Range(.Cells(biaoline,h), .Cells(biaoline,h+1))

.Borders.LineStyle=1

'設(shè)置表框?yàn)榧?xì)實(shí)線

If biaoline=u Then

.Range(.Cells(biaoline,h), .Cells(biaoline,h+1))

.Value=title(biaocolu-1)

End If

End With

h=h+2

Next biaocolu

Next biaoline

u=u+page '定義下一頁(yè)SPD表的起始行

……

4.2 設(shè)置SPD電參數(shù)表

在SPD檢測(cè)中,還需要記錄SPD的電壓、電流等電參數(shù),不同的SPD電參數(shù)是不同的,一個(gè)SPD由不同組小模塊構(gòu)成,小模塊電參數(shù)也不同。因此很有必要設(shè)置SPD電參數(shù)表。設(shè)置關(guān)鍵代碼如下:

……

For x=starpos To firstpage

For i=starline To starline+3 '小表格的行數(shù)

biaosheet.Rows(i).RowHeight=25

For j=a To a+1 '小表格的列數(shù)

biaosheet.Columns(j).ColumnWidth=6 '設(shè)置列寬

With biaosheet

.Range(.Cells(i,j), .Cells(i,j)).Borders.LineStyle=xlContinuous

'設(shè)置邊框?yàn)槭菍?shí)線

End With

Next j

biaosheet.Columns(a+2).ColumnWidth=0.8 '設(shè)置間隔列寬

Next i

a=a+3

r=x Mod 6

If r=0 Then starline=starline+5

If r=0 Then a=1

Next x

starline=starline+3

……

4.3 打印及預(yù)覽

借助預(yù)覽及打印生成所需要的工作表后,就可以對(duì)Excel發(fā)出預(yù)覽、打印指令[5]。代碼如下:

……

'設(shè)置表的頁(yè)邊距

biaosheet.PageSetup.LeftMargin=1.5/0.035

biaosheet.PageSetup.RightMargin=1#/0.035

biaosheet.PageSetup.TopMargin=1/0.035

biaosheet.PageSetup.BottomMargin=1.5/0.035

'打印表格

biaosheet.PrintPreview

biaosheet.PrintOut

……

5 結(jié)束語(yǔ)

本文論述了VB編程語(yǔ)言與Excel表格處理軟件相結(jié)合的方法,成功地解決了VB在自動(dòng)繪制表格方面編程難度較大,效率不高的問(wèn)題。該方法通過(guò)在SPD表格設(shè)計(jì)實(shí)例中的應(yīng)用,充分體現(xiàn)了VB調(diào)用Excel設(shè)計(jì)表格的靈活性,減少了手工設(shè)計(jì)表格的繁瑣過(guò)程,減輕了繁重的工作,避免了重復(fù)性的工作,實(shí)現(xiàn)了SPD復(fù)雜表格的自動(dòng)輸出功能。在實(shí)際工作應(yīng)用中,尤其對(duì)SPD批量數(shù)據(jù)處理時(shí),對(duì)于大量SPD數(shù)據(jù)表格的自動(dòng)設(shè)計(jì)、輸出,將大大提高工作效率,因此利用VB和Excel結(jié)合來(lái)制作SPD表是一種簡(jiǎn)單、經(jīng)濟(jì)又高效的解決方案。

在實(shí)際應(yīng)用中我們發(fā)現(xiàn),自動(dòng)生成測(cè)試數(shù)據(jù)的電子表和防雷管理平臺(tái)還需要銜接起來(lái),即:將測(cè)試SPD的數(shù)據(jù)結(jié)果自動(dòng)導(dǎo)入防雷管理平臺(tái),這個(gè)問(wèn)題有待于進(jìn)一步研究解決。

參考文獻(xiàn):

[1] 明日科技編著.Visual Basic從入門(mén)到精通(第3版)[M].清華大學(xué)出版

社,2012.

[2] 劉永志,陳學(xué)煌,段新文.VB調(diào)用EXCEL實(shí)現(xiàn)報(bào)表打印功能[J].甘肅

科技,2005.21(7):84

[3] 劉東.VB控制EXCEL生成報(bào)表[J].宜賓學(xué)院學(xué)報(bào),2005.12:73

[4] 楊元法.VB訪問(wèn)Excel的幾種方式[J].Computer Era,2002.10:34

[5] 魏彩喬,王曉光,焦?jié)M囤.基于VB和EXCEL的復(fù)雜數(shù)據(jù)報(bào)表輸出[J].

華北航天工業(yè)學(xué)院學(xué)報(bào),2005.15(1):7

衡山县| 辽阳县| 青田县| 吴川市| 温州市| 湟源县| 金山区| 防城港市| 东阿县| 余庆县| 股票| 邳州市| 周宁县| 望城县| 萨迦县| 碌曲县| 汉沽区| 牟定县| 渝北区| 孝感市| 射洪县| 吉首市| 灵宝市| 江源县| 新闻| 芒康县| 永胜县| 海盐县| 自治县| 长宁县| 东城区| 萍乡市| 堆龙德庆县| 洪雅县| 融水| 乌兰察布市| 曲松县| 青海省| 措美县| 阳春市| 石棉县|