注册 登录
编程论坛 VFP论坛

导入excel文件出错

sarge_xp 发布于 2021-07-20 10:30, 1696 次点击
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
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
6 回复
#2
sdta2021-07-20 10:39
.WORKBOOKS.OPEN(完整路径 + ABC(I,1))
#3
sarge_xp2021-07-20 22:03
回复 2楼 sdta
.WORKBOOKS.OPEN(SYS(5) + SYS(2003) +ABC(I,1))

换成这样也出错
#4
吹水佬2021-07-20 22:12
这样看看就清楚
messagebox(SYS(5) + SYS(2003) +ABC(I,1))
#5
sdta2021-07-20 22:24
以下是引用sarge_xp在2021-7-20 22:03:27的发言:

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

换成这样也出错

完整路径 = SYS(5) + SYS(2003) + "\"
#6
xuminxz2021-07-21 21:31
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编辑过]

#7
金戈铁马22023-12-25 21:41
路过
1