标题:请教 excle文件导入问题
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
回复 楼主 laibinhua
试试用SPT
EXCEL表

DBF表

**    EXCEL2003及之前
**    Driver={Microsoft Excel Driver (*.xls)};
**    EXCEL2007及之后
**    Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};

CREATE CURSOR tt (f1 C(50),f2 C(50),f3 C(50),f4 I,f5 N(10,2),f6 N(12,2))
cFile = "C:\TEMP\导出excel\导出excel.xls"
cDSN = "Driver={Microsoft Excel Driver (*.xls)};";
    + "DBQ=" + cFile + ";"
hDSN = SQLSTRINGCONNECT(cDSN)
IF hDSN <= 0
   MESSAGEBOX("访问 "+cFile+" 文件失败")
   RETURN
ENDIF
**cSheet = "Sheet1$A1:F65500" && 选择区域
cSheet = "Sheet1$"
cSQL = "SELECT ";
    + "IIF(ISNULL(品名),'',品名) as f1,";
    + "IIF(ISNULL(规格),'',规格) as f2,";
    + "IIF(ISNULL(单位),'',单位) as f3,";
    + "IIF(ISNULL(数量),0, 数量) as f4,";
    + "IIF(ISNULL(单价),0, 单价) as f5,";
    + "IIF(ISNULL(金额),0, 金额) as f6 ";
    + "FROM [" + cSheet + "]"
IF SQLEXEC(hDSN, cSQL, "tmp") > 0
    SELECT tt
    APPEND FROM DBF("tmp")
    SELECT * FROM tt
    USE IN "tmp"
ELSE
    MESSAGEBOX("查询 "+cFile+" 文件数据失败")
ENDIF
SQLDISCONNECT(hDSN)
RETURN
2020-03-02 20:14
阿金679911
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2020-3-3
得分:3 
IMPORT FROM e:\123456.xls TYPE XL8 SHEET "123456"
2020-03-03 13:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用阿金679911在2020-3-3 13:08:11的发言:

IMPORT FROM e:\123456.xls TYPE XL8 SHEET "123456"

试了一下,用楼主提供的文件:
IMPORT FROM C:\TEMP\导出excel\导出excel.xls TYPE XL8 SHEET "123456"
不行? 没出错提示,但整个VFP也关了,怎么回事?
运行环境:Win10+VFP9SP2
2020-03-03 17:15
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
回复 13楼 吹水佬
还是文件格式的问题。
用你前面的方法很好。如果记录不是特别多Excel的格式不变用COM方式也很保险。

dBase有人接盘了。
2020-03-03 21:39
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 13楼 吹水佬
我认为他的文件可能是wps转过来的。
2020-03-04 10:44
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:205
专家分:31
注 册:2010-12-23
得分:0 
回复 15楼 schtg
谢谢坛主的方法:完美解决
cDSN = "Driver={Microsoft Excel Driver (*.xls)};";
    + "DBQ=" + cFile + ";"
hDSN = SQLSTRINGCONNECT(cDSN)
2020-03-07 10:46
庆余年6789
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2020-3-7
得分:3 
学习
2020-03-07 11:13



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




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

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