如何将EXCEL表内数据通过BCB导入到数据库中?

如何将EXCEL表内数据通过BCB导入到数据库中?,第1张

原理很简单,我作过,使用OLE打开EXCEL文件,逐行读取数据EXCEL数据,再逐行用通过ADO控件写入表中,当然还有别的方法,不过我没用过.

这里有些参考资料,是 *** 纵EXCEL的,对你会有帮助:

http://www.ccrun.com/article.asp?i=529&d=0iezy5

================================

一个另类的方法,用企业管理器建立一个导入EXCEL的DTS包,然后建立一个批处理,通过DTSRUN执行导入 *** 作,批处理内容如下:

@@echo

off

if

[%1]

==

[]

goto

Usage

if

[%2]

==

[]

goto

Usage

if

[%3]

==

[]

goto

Usage

cls

SET

LOGFILE=%2

echo

%TIME%

DTS包开始执行.........

>>

%LOGFILE%

echo

------------------------------------------

>>

%LOGFILE%

@dtsrun

/F

%1

/N

%3

>>

%2

if

errorlevel

1

goto

Error

echo

%TIME%

DTS包执行完毕.........

>>

%LOGFILE%

echo

------------------------------------------

>>

%LOGFILE%

PAUSE

goto

FINISH

:Error

echo

------------------------------------------

>>

%LOGFILE%

echo

DTS包执行错误,请查看日志

.........

echo

%TIME%

DTS包执行错误.

>>

%LOGFILE%

pause

goto

FINISH

:Usage

echo.

echo

用法:通过程序调用,缺少参数

:FINISH

注意dtsrun可以有多个参数,这里的三个参数指DTS文件,包名称和日志文件

最后在BCB里调用这个批处理程序即可。

想在form中嵌入excel,待用户对当前sheet粘贴完数据后进行读取。

用那种方式好,form中嵌入sheet要比让用户直接打开一个excel文件再进行读取直观一些吧。

有例子更好。 suntonycomm@msn.com

回复人:suntonycomm(太阳花) ( ) 信誉:98 2006-6-20 13:35:50 得分:0

?

up

Top

回复人:lurel(城市陌生人) ( ) 信誉:93 2006-6-21 11:04:37 得分:25

?

利用OLEContainer来做

Top

回复人:suntonycomm(太阳花) ( ) 信誉:98 2006-6-21 13:59:39 得分:0

?

楼上的,再说的具体些,以前没用过。

Top

回复人:suntonycomm(太阳花) ( ) 信誉:98 2006-6-22 12:23:24 得分:0

?

OLEContainer 可以进行嵌入,但如何读取单元格的值呢?

Top

回复人:zwh202342(little grass) ( ) 信誉:100 2006-6-24 10:32:29 得分:25

?

在www.ccrun.com这个网站中有有应用的例子,呵呵!

Top

该问题已经结贴 ,得分记录: lurel (25)、 zwh202342 (25)、

一、可以存图片的相对地址到数据库中(如:\pic\A10020.jpg),显示的时候将列的display as picture属性勾选上。

这种方法显示的时候查询数据会快些。

二、将图片数据存入数据库中,如果存入数据库中,很快会让你的数据库增大,所以要尽量控制图片的大小,存和读取的方法在下面都有。

1、选择图片

string ls_pathname, ls_filename

integer li_value

li_value = GetFileOpenName("选择照片", &

+ ls_pathname, ls_filename, "图片文件","jpg File (*.jpg),*.jpg,bmp file(*.bmp),*.bmp,gif file(*.gif),*.gif")

IF li_value = 1 THEN

P_1.picturename=ls_pathname

Elseif li_value=-1 then

MessageBox("选择照片","打开文件错误!")

End If

2、获取图片的二进制数据

//处理照片文件数据开始

string ls_photofile

integer li_filenum

integer li_loops

integer li_counter

blob lb_picture

long ll_filelen

blob ll_read

ls_photofile=p_1.picturename

ll_filelen=filelength(ls_photofile)

li_filenum=fileopen(ls_photofile,streammode!,read!,lockread!)

//*fileread()函数不支持读取大于32k的文本,计算将使用fileread函数的次数 */

if ll_filelen>32765 then

li_loops=((ll_filelen - 1)/32765)+1

else

li_loops=1

end if

//读文件

for li_counter=1 to li_loops

fileread(li_filenum,ll_read)

lb_picture=lb_picture+ll_read

next

fileclose(li_filenum)

//显示图片

p_1.setpicture(lb_picture)

//处理照片文件结束

3、存入数据库

//存照片入数据库

updateblob t_teacher set pic=:lb_picture where code = :ls_code

if sqlca.sqlcode<>0 then

messagebox("系统提示","更新数据错误",stopsign!,ok!)

return

end if

4、显示图片

blob lb_pic

string ls_code

ls_code="01007"

selectblob pic into :lb_pic from t_teacher where code=:ls_code

if sqlca.sqlcode<>0 then

messagebox("系统提示","载入数据错误",stopsign!,ok!)

return

end if

setpicture(p_1,lb_pic)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10030561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存