标题:VFP9.0导入excel表现是字段名重复或无效,但是我的名字没问题啊
只看楼主
vfp90
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2022-10-3
得分:0 
回复 16楼 sdta
嗯嗯,好的,我已经改到5.0版本都不行,我还试过改成csv,虽然可以导入,但是我当我设置字段名所在行时,就会显示错误#10在createtestcursor (O): 语法错误,然后是找不到别名。如果略过就可以。我再试试吧。
2022-10-05 18:59
vfp90
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2022-10-3
得分:0 
回复 15楼 mywisdom88
你好,我试下了你的建议,还是一样的问题。我有个疑惑,为什么不用表单向导就可以呢,但是有的数据会出现很多位小数。其他的我再试试吧!
2022-10-05 19:35
aqyejun
Rank: 3Rank: 3
等 级:论坛游民
威 望:9
帖 子:121
专家分:99
注 册:2010-6-11
得分:3 
vfp9.0导入支持Excel_2007,首先确保正确完整安装Excel,再次确认表中没有空行和空列。

【独叶为舟】工作室
2022-10-08 16:54
camsion
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-12-7
得分:0 
字段不要用中文,报错率大
2023-03-21 11:15
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
用com吧

dBase有人接盘了。
2023-03-21 12:42
bilimyar
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-11-7
得分:0 
Excel 保存类型中没有找到 *dbf 文件类型,该怎么办?
2023-05-06 02:12
pvm2000
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:24
帖 子:159
专家分:256
注 册:2022-12-22
得分:0 
以下是引用gs2536785678在2022-10-4 18:28:24的发言:

你直接把EXCEL文件另存为DBF文件吧
我就是这么做的。

可行方案
2023-05-06 10:48
dragonman19
Rank: 1
等 级:新手上路
帖 子:68
专家分:5
注 册:2014-2-20
得分:0 
  以下代码我也是从本论坛得到,导入EXCEL文件用。office为2007版本
----------------------------------------------------
opendbf=getfile('xlsx')
IF EMPTY(opendbf)
else
lcFileName=opendbf
rq=ALLTRIM(LEFT(RIGHT(lcFileName,13),6))
oExcel=Createobject('Excel.application')
oExcel.Workbooks.Open('&lcFileName') &&打开文件
oExcel.ActiveSheet.UsedRange.Select &&选中已用区域的数据
oExcel.Selection.NumberFormatLocal = "@" &&把被选定的单元格设为文本格式
oExcel.Columns.AutoFit  &&让所有的列宽都自动调整
oExcel.DisplayAlerts=.F.
oExcel.ActiveWorkbook.SaveAs('C:\11.xls',39) && 43为97/2003 xlExcel9795(39为5.0/95 xlExcel5 & xlExcel7)
oExcel.Workbooks.Close &&关闭表
oExcel.Quit &&退出EXCEL
Release oExcel &&释放变量
*Messagebox('另存为5.0格式完成!',64,'信息提示')
IMPORT from c:\11  xl5
----------------------------------------------------
2023-05-11 13:07
ybq1014
Rank: 2
等 级:论坛游民
帖 子:13
专家分:16
注 册:2012-12-19
得分:0 
回复 楼主 vfp90
你把EXCEL工作簿中的工作表名字改一下就行,如果方便的话,将文件发上来。
2023-05-11 14:13
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
回复 28楼 dragonman19
你这样有点"绕远路" ,既然oExcel对象已经访问到了文件,为何还要另存为低版本,再用import呢 .
可以直接用数组把数据抓取出来的.
程序代码:
ff = "e:\CWBB\ttyian\ttyian.xlsx"  && 源文件,xls/xlsx均可
oExcel=Createobject('Excel.Application')
owb = oExcel.Workbooks.Open(ff)
osht = owb.Worksheets("Sheet1")  && 指定Sheet

r2 = osht.UsedRange.rows.count  && 最末行
c2 = osht.UsedRange.columns.count  && 最右列

arr11 = osht.range(osht.cells(2,1) ,osht.cells(r2,c2)).value  && 第一行是表头,故从第2行开始取

select importDBF 
APPEND FROM ARRAY arr11
owb.Close()
oExcel.Quit()



[此贴子已经被作者于2023-5-11 15:42编辑过]

2023-05-11 15:40



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




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

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