2024年3月17日發(fā)(作者:愛暖暖)

在
po werbuilder
中實(shí)現(xiàn)
excel
表
格的導(dǎo)入和導(dǎo)出
在為某單位制作一個(gè)管理信息系統(tǒng)軟件時(shí), 用戶提出, 系統(tǒng)
中要能夠?qū)崿F(xiàn) excel 表格的導(dǎo)入和導(dǎo)出。 Excel 軟件是專門為處 理
各式電子表格而設(shè)計(jì),它能夠非常高效而專業(yè)的處理各式表
格,在使用這個(gè)管理信息系統(tǒng)軟件之前, 單位的大部分?jǐn)?shù)據(jù)都是
保存在 excel
中的。系統(tǒng)前臺(tái)的開發(fā)使用的是 POWERBUILD, E
PO WERBUILDE是面向?qū)ο蟮臄?shù)據(jù)庫開發(fā)工具之一,它可以操縱 眾多
大型數(shù)據(jù)庫和桌面數(shù)據(jù)庫, 支持多種硬件平臺(tái)。 但它有一個(gè) 致命的
弱點(diǎn),就是打印報(bào)表非常不方便,打印函數(shù)太少,特別是 對中國式報(bào)
表。而EXCEL制表卻非常容易,若把兩者結(jié)合起來 使用則會(huì)取長補(bǔ)
短。 也就是說我們的這個(gè)系統(tǒng)要既能將 excel 報(bào) 表中的內(nèi)容導(dǎo)入到
數(shù)據(jù)庫中,又要能將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到 excel 中。
PowerBuider 是 Syba 公司推出的一種高級(jí)數(shù)據(jù)庫應(yīng)用程 序
開發(fā)環(huán)境, 在這個(gè)環(huán)境中開發(fā)數(shù)據(jù)庫應(yīng)用程序, 使用其專利技 術(shù)
DataWindow,可以很輕松的開發(fā)出非常專業(yè)的數(shù)據(jù)庫應(yīng)用程 序。此
外, PowerBuilder 還支持多種數(shù)據(jù)庫,能夠很輕松的與 目前流行的
MS SQL Server 、Oracle 等企業(yè)級(jí)數(shù)據(jù)庫建立連接, 處理各種事
務(wù)。 PowerBuilder 中的編程語言被稱為腳本
Script ),實(shí)際上,使用 PowerBuilder 編寫的程序也是事件
面向?qū)ο蟮木幊趟枷耄€提供了對 O L E、 DD E、 Automation
等 技術(shù)的支持,下面我們就先來看一下如何將 excel 報(bào)表通過
powerbuilder 導(dǎo)入到數(shù)據(jù)庫中。
首先,聲明一個(gè)OLE對象,如下:
OLEObject ExcelServer
其次,創(chuàng)建該OLE對象,如下:
ExcelServer =Create OLEObject
驅(qū)動(dòng),在界面設(shè)計(jì)上也完全做到了“所見即所得” , 并完全使用
然后,使用 PowerBuilder
中的 ConnectToNewObject 函數(shù)來
創(chuàng)建一個(gè)新的OLE對象,并且連接到該對象上,如下:
ExcelServer. ConnectToNewObject ("ation") 調(diào)
用該函數(shù)時(shí),如果成功的話,返回值是 0,否則就意味著調(diào)用 失敗。
調(diào)用函數(shù)成功后我們需要利用 getfileopenname 函數(shù)調(diào)用 一個(gè)
對話框, 用來選擇將要導(dǎo)入到數(shù)據(jù)庫中的 excel 報(bào)表。具體 代碼如
下,省略了部分變量定義語句。
value=getfileopenname(" 請選擇文件名 " , str_filename
file , "xls" , "xls Files
(*.xls)
, *.xls")
(str_filename)
str_savename="c:"
(str_savename , 3)
在作完以上工作以后, 需要關(guān)閉自動(dòng)化對象, 撤銷與自動(dòng)化
服務(wù)器的連接,銷毀 OLE對象,因?yàn)槭褂米詣?dòng)化程序,尤其是
Word或Excel這樣的Office程序,所消耗的系統(tǒng)資源是很龐大 的,
因此在每次工作完成之后,需要釋放這部分系統(tǒng)資源。代碼 如下:
()
nectObject()
DESTROY ExcelServer
系統(tǒng)資源釋放后通過 dw_File (str_savename )語 句
將 excel
報(bào)表中的內(nèi)容顯示到 powerbuilder 的數(shù)據(jù)窗口中,再通過
dw_() 命令將數(shù)據(jù)保存在數(shù)據(jù)庫中。
在導(dǎo)入過程中有一點(diǎn)需注意,就是數(shù)據(jù)庫中表的列與相應(yīng) excel
報(bào)表的列的數(shù)據(jù)類型要相對應(yīng)。
以上為導(dǎo)入 excel 報(bào)表的過程, 下面我們看一下將數(shù)據(jù)庫中
數(shù)據(jù)導(dǎo)出到 excel 文件中的過程。
首先,聲明兩個(gè)OLE對象,如下:
OLEObject newoleobject , newoleworkbooks
其次,創(chuàng)建該OLE對象,如下:
newoleobject=Create oleobject
然后,使用 PowerBuilder
中的 ConnectToNewObject 函數(shù)來
創(chuàng)建一個(gè)新的OLE對象,并且連接到該對象上,如下:
newoleobject. ConnectToNewObject
("ation")
調(diào)用該函數(shù)時(shí),如果成功的話,返回值
是 0。
函數(shù)調(diào)用成功后, 我們打開一個(gè) excel 文件并且使這個(gè)文件
可見,然后利用 cell 函數(shù)將數(shù)據(jù)窗口中的數(shù)據(jù)導(dǎo)出到
excel 文
件中,部分代碼如下:
e=true
newoleworkbooks=eets(1)
(1
,1).value=" 列名 1"
(1 ,2).value=" 列名 2"
long rownumber
for rownumber=2 to dw_nt()+1
(rownumber ,1).value=rownumber
(rownumber,2).value=dw_mst
ring(rownumber - 1 ,1)
(rownumber,3).value=dw_mst
ring(rownumber - 1 ,2)
Next
將數(shù)據(jù)導(dǎo)出到 excel 文件后,用 getfilesavename 函數(shù)調(diào)用
對話框?qū)?excel 文件保存到適當(dāng)?shù)奈恢茫詈髮⑾到y(tǒng)資源釋放, 代
碼如下:
value=getfilesavename(" 請選擇文件名 " , str_filename
file ,"xls" , "xls Files
(*.xls)
,*.xls")
(str_filename)
()
nectobject()
destroy newoleobject
destroy newoleworkbooks 出功能的詳細(xì)說明, 通過實(shí)際應(yīng)用
表明, 實(shí)現(xiàn) excel 報(bào)表的導(dǎo)入 功能能避免重新在數(shù)據(jù)庫中錄入數(shù)據(jù)
的繁瑣, 數(shù)據(jù)庫中數(shù)據(jù)導(dǎo)出 到 excel 文件使數(shù)據(jù)的打印更為方便和
靈活, 這兩個(gè)功能也是我 們在制作管理信息系統(tǒng)軟件時(shí)必不可少的
兩個(gè)功能。
以上內(nèi)容為在 PowerBuilder
中實(shí)現(xiàn) excel 文件的導(dǎo)入和導(dǎo)
本文發(fā)布于:2024-03-17 14:33:10,感謝您對本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/171065719056932.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:在powerbuilder中實(shí)現(xiàn)excel表格的導(dǎo)入和導(dǎo)出-精選文檔.doc
本文 PDF 下載地址:在powerbuilder中實(shí)現(xiàn)excel表格的導(dǎo)入和導(dǎo)出-精選文檔.pdf
| 留言與評(píng)論(共有 0 條評(píng)論) |