| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2956 人关注过本帖
标题:求助:关于EXCEL表导入数据库中?!!!
取消只看楼主 加入收藏
nhygm888
Rank: 2
等 级:论坛游民
威 望:1
帖 子:186
专家分:42
注 册:2008-7-20
结帖率:64.71%
收藏
 问题点数:0 回复次数:4 
求助:关于EXCEL表导入数据库中?!!!
一个文件夹中有5000多个EXCEL表  我想把他们导入到数据库中
我用adir()建立个数组  然后循环打开EXCEL表 逐个导入。现在出现点问题 大家帮我看看怎么回事啊??

ncount=0
set path to D:\在职信息删除\信息删除电子文档备份
gndbcnumber = adir(ml,'*.xls')
for ncount = 1 to gndbcnumber && 依据数据库的个数循环
selectfile=ml(ncount,1)
thisform.jdt4.visible=.T.
loXls = CREATEOBJECT("excel.application")
bookExcel = loXls.APPLICATION.Workbooks.OPEN(selectfile)
nrows=bookExcel.Worksheets('Sheet1')
UsedRange =nrows.UsedRange
r=UsedRange.ROWS.COUNT
c=UsedRange.COLUMNS.COUNT
。。。。。。。。

问题gndbcnumber总是0 好象是路径不对 没有找到EXCEL表的文件夹
谁帮我 一下  谢谢   另外 还有别的方法吗???
     

[ 本帖最后由 nhygm888 于 2009-11-7 10:16 编辑 ]
搜索更多相关主题的帖子: EXCEL 数据库 
2009-11-07 10:11
nhygm888
Rank: 2
等 级:论坛游民
威 望:1
帖 子:186
专家分:42
注 册:2008-7-20
收藏
得分:0 
谢谢   是路径的问题 已经弄好了

现在用出了个新的问题:我把4000多个EXCEL表 都保存在ml数组中 每次 循环取一个EXCEL表的文件名 打开EXCEL表读取他们的记录 保存到数据库中,然后在关闭EXCEL表。在读取150多个EXCEL表时  出错了。打开进程管理器时发现 进程中有好多EXCEL.EXE进程,我想应该是 我打开EXCEL表后没有关闭 又打开了下一个EXCEL表的情况吧。不知道是不是这个原因,请高手帮我看看。是个原因怎么解决呢 ????
thisform.jdt4.visible=.T.
ncount=1
gndbcnumber = adir(ml,'D:\在职信息删除\信息删除电子文档备份\*.xls') && 创建数组
for ncount = 1 to gndbcnumber && 依据数据库的个数循环
selectfile1=ml(ncount,1)
selectfile="D:\在职信息删除\信息删除电子文档备份\"+selectfile1
loXls = CREATEOBJECT("excel.application")
bookExcel = loXls.APPLICATION.Workbooks.OPEN(selectfile) &&打开EXCEL表
nrows=bookExcel.Worksheets('Sheet1')
UsedRange =nrows.UsedRange
r=UsedRange.ROWS.COUNT
c=UsedRange.COLUMNS.COUNT
loXls.visible=0
thisform.jdt4.value=int(ncount/(r/100))
i=1
a=0
dwbh1=substr(allt(nrows.cells(4,2).value),12,14)
dwmc1=substr(allt(nrows.cells(4,7).value),12,30)
grbh1=substr(allt(nrows.cells(4,15).value),11,10)
xm1= substr(allt(nrows.cells(5,2).value),8,8)
sfz1= substr(allt(nrows.cells(5,7).value),16,18)
dyrq1=substr(allt(nrows.cells(5,15).value),12,8)
ym1=nrows.cells(r,2).value
for i=9 to r

if nrows.cells(i,23).value="在职" .or. nrows.cells(i,23).value="个体"
jfsq1 =str(nrows.cells(i,2).value,6)
jflx1 = nrows.cells(i,3).value
grjfjs1=nrows.cells(i,4).value
grjfbj1=nrows.cells(i,5).value
grjflx1=nrows.cells(i,6).value
grjfbs1=allt(nrows.cells(i,9).value)
if grjfbs1="欠缴"
grdzrq1=""
else
grdzrq1=str(nrows.cells(i,10).value,8)
endi
dwjfbj1=nrows.cells(i,11).value
dwjflx1=nrows.cells(i,12).value
dwjfbs1=allt(nrows.cells(i,13).value)
if dwjfbs1="欠缴"
dwdzrq1=""
else
dwdzrq1=str(nrows.cells(i,14).value,8)
endi
hzbj1=nrows.cells(i,17).value
hzlx1=nrows.cells(i,18).value
hzbs1=nrows.cells(i,20).value
if hzbs1="欠缴"
hzrq1=""
else
hzrq1=str(nrows.cells(i,22).value,8)
endi
jfrylb1=nrows.cells(i,23).value

INSERT INTO jfls(grbh,sfz,xm,dwbh,dwmc,jfsq,jflx,grjfjs,grjfbj,grjflx,grjfbs,grdzrq,dwjfbj,dwjflx,dwjfbs,dwdzrq,hzbj,hzlx,hzbs,hzrq,jfrylb,dyrq,ym) VALUES (grbh1,sfz1,xm1,dwbh1,dwmc1,jfsq1,jflx1,grjfjs1,grjfbj1,grjflx1,grjfbs1,grdzrq1,dwjfbj1,dwjflx1,dwjfbs1,dwdzrq1,hzbj1,hzlx1,hzbs1,hzrq1,jfrylb1,dyrq1,ym1)
INSERT INTO jfls1(grbh,sfz,xm,dwbh,dwmc,jfsq,jflx,grjfjs,grjfbj,grjflx,grjfbs,grdzrq,dwjfbj,dwjflx,dwjfbs,dwdzrq,hzbj,hzlx,hzbs,hzrq,jfrylb,dyrq,ym) VALUES (grbh1,sfz1,xm1,dwbh1,dwmc1,jfsq1,jflx1,grjfjs1,grjfbj1,grjflx1,grjfbs1,grdzrq1,dwjfbj1,dwjflx1,dwjfbs1,dwdzrq1,hzbj1,hzlx1,hzbs1,hzrq1,jfrylb1,dyrq1,ym1)
endi
endf
loXls.Quit   
RELEASE loXls
&&这里没有关闭EXCEL表??

endfor
thisform.jdt4.value=0
2009-11-08 14:17
nhygm888
Rank: 2
等 级:论坛游民
威 望:1
帖 子:186
专家分:42
注 册:2008-7-20
收藏
得分:0 
还是不行啊 导入到145个EXCEL表的时候 程序运行到loXls = CREATEOBJECT("excel.application")的时候 就出错了
2009-11-09 07:55
nhygm888
Rank: 2
等 级:论坛游民
威 望:1
帖 子:186
专家分:42
注 册:2008-7-20
收藏
得分:0 
提示我没有 足够内存
2009-11-09 09:25
nhygm888
Rank: 2
等 级:论坛游民
威 望:1
帖 子:186
专家分:42
注 册:2008-7-20
收藏
得分:0 
谢谢 ibmlang_002  问题 解决了
2009-11-11 06:40
快速回复:求助:关于EXCEL表导入数据库中?!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022088 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved