标题:导入excel文件出错
只看楼主
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:120
专家分:13
注 册:2006-4-30
结帖率:60%
已结贴  问题点数:20 回复次数:5 
导入excel文件出错
SET DEFAULT TO C:\DATA\TEST
SET TALK OFF
SET SAFETY OFF
CLOSE DATABASES
CREATE CURSOR TEM (时间 C(5),姓名 C(10),性别 l,编号 C(6))
ADIR(ABC)
FOR I=1 TO ALEN(ABC)/5
? ABC(I,1)
    OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")
    WITH OEXCEL
***********
        .WORKBOOKS.OPEN(ABC(I,1))        &&出错的语句
***********


*        .WORKBOOKS.OPEN(SYS(5) + SYS(2003) +ABC(I,1))
        .DISPLAYALERTS = .F.
        .ACTIVEWORKBOOK.SAVEAS(SYS(5) + SYS(2003) + "\0326.TXT", -4158)  && 保存为以制表符分隔的文本文件
        .ACTIVEWORKBOOK.CLOSE
        .DISPLAYALERTS = .T.
        .QUIT
    ENDWITH
    RELEASE OEXCEL
    SELECT TEM
    APPEND FROM 0326.TXT DELIMITED WITH TAB
    ERASE 0326.TXT
ENDFOR
搜索更多相关主题的帖子: SET excel 出错 ABC 导入 
2021-07-20 10:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
.WORKBOOKS.OPEN(完整路径 + ABC(I,1))

坚守VFP最后的阵地
2021-07-20 10:39
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:120
专家分:13
注 册:2006-4-30
得分:0 
回复 2楼 sdta
.WORKBOOKS.OPEN(SYS(5) + SYS(2003) +ABC(I,1))

换成这样也出错
2021-07-20 22:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
这样看看就清楚
messagebox(SYS(5) + SYS(2003) +ABC(I,1))
2021-07-20 22:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用sarge_xp在2021-7-20 22:03:27的发言:

 .WORKBOOKS.OPEN(SYS(5) + SYS(2003) +ABC(I,1))

换成这样也出错

完整路径 = SYS(5) + SYS(2003) + "\"

坚守VFP最后的阵地
2021-07-20 22:24
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:7 
SET DEFAULT TO C:\DATA\TEST
gtpth='C:\DATA\TEST\'
SET TALK OFF
SET SAFETY OFF
**CLOSE DATABASES  似乎要关闭的是表不是数据库吧。
CLOSE TABLES  all

CREATE CURSOR TEM (时间 C(5),姓名 C(10),性别 l,编号 C(6))
ADIR(ABC)
FOR I=1 TO ALEN(ABC)/5
**建议加上这一段,不然文件夹中万一有非excel文件就要报错了。
    IF  UPPER(JUSTEXT(abc(i,1)))!='XLS'  
        LOOP
    endif
? ABC(I,1)  &&建议改成 wait window at  25,25 ABC(I,1) nowait

    OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")

    WITH OEXCEL
        .WORKBOOKS.OPEN(gtpth+ABC(I,1))        &&出错的语句
        .DISPLAYALERTS = .F.
        .ACTIVEWORKBOOK.SAVEAS(gtpth+"0326.TXT", -4158)  && 保存为以制表符分隔的文本文件
        .ACTIVEWORKBOOK.CLOSE
        .DISPLAYALERTS = .T.
        .QUIT
    ENDWITH
    RELEASE OEXCEL
    SELECT TEM
    APPEND FROM 0326.TXT DELIMITED WITH TAB
    ERASE 0326.TXT
ENDFOR

[此贴子已经被作者于2021-7-21 21:33编辑过]


dBase有人接盘了。
2021-07-21 21:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506283-1-1.html




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

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