注册 登录
编程论坛 VFP论坛

求助:根据网上发布代码,做了一个导入Excel文件的小程序,导不进数据,求大侠帮忙给看一下

hqc2002 发布于 2019-06-20 17:49, 3541 次点击
做了一个导入Excel文件的小程序,出现数据类型不对,

只有本站会员才能查看附件,请 登录
17 回复
#2
xuminxz2019-06-20 19:08
EXCEL中读出的数据是C型的。
#3
sdta2019-06-20 20:39
close databases
use mdk
zap
M_File=GETFILE('xls',"报名文件")
myexcel=createobject('excel.application')                   &&创建一个对象
myexcel.visible=.f.                                         &&不可见
bookexcel=myexcel.workbooks.open(M_File)                    &&打开指定文件
o_rows=myexcel.ActiveSheet.UsedRange.rows.count                                 &&汇总行
o_cols=myexcel.ActiveSheet.UsedRange.columns.count                              &&汇总列

IF o_rows<=1
    =MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示")
ELSE
    FOR i=2 TO o_rows
        APPEND BLANK
        REPLACE  zbdm WITH myexcel.ActiveSheet.cells(i,1).value
        REPLACE  dwdm WITH myexcel.ActiveSheet.cells(i,2).value
        REPLACE  hm WITH myexcel.ActiveSheet.cells(i,3).value
        REPLACE  name WITH myexcel.ActiveSheet.cells(i,4).value
        REPLACE  dm1 WITH myexcel.ActiveSheet.cells(i,5).value
        REPLACE  xm1 WITH myexcel.ActiveSheet.cells(i,6).value
        REPLACE  dm2 WITH myexcel.ActiveSheet.cells(i,7).value
        REPLACE  xm2 WITH myexcel.ActiveSheet.cells(i,8).value
        REPLACE  dm3 WITH myexcel.ActiveSheet.cells(i,9).value
        REPLACE  xm3 WITH myexcel.ActiveSheet.cells(i,10).value
    ENDFOR
ENDIF
myexcel.workbooks.close                                    &&关闭工作区
myexcel.quit                                               &&关闭excel
brow
#4
吹水佬2019-06-21 08:22
fTemp = "C:\temp\temp.txt"
M_File=GETFILE('xls','报名文件')
myexcel=createobject('excel.application') &&创建一个对象
myexcel.DisplayAlerts = .F.
myexcel.visible=.f. &&不可见
myexcel.workbooks.open(M_File) &&打开指定文件
myexcel.Rows("1:1").Select
myexcel.Selection.Delete
myexcel.ActiveWorkBook.SaveAs(fTemp, -4158)
myexcel.ActiveWorkBook.Saved = .T.
myexcel.WorkBooks.Close
myexcel.Quit
USE mdk
ZAP
APPEND FROM (fTemp) FIELDS zbdm,dwdm,hm,name,dm1,xm1,dm2,xm2,dm3,xm3 DELIMITED WITH TAB
BROWSE
DELETE FILE (fTemp)
RETURN
#5
hqc20022019-06-21 08:30
十分感谢大侠们!!!!
#6
hqc20022019-06-21 08:36
吹版:运行出现这个
只有本站会员才能查看附件,请 登录
#7
hqc20022019-06-21 08:42
sdta版:运行你的代码出现下图
只有本站会员才能查看附件,请 登录
#8
吹水佬2019-06-21 09:02
回复 6楼 hqc2002
可能是EXCEL版本不兼容,用的是什么版本?
#9
hqc20022019-06-21 09:13
用的2007
#10
吹水佬2019-06-21 09:41
以下是引用hqc2002在2019-6-21 09:13:42的发言:

用的2007

版本不同EXCEL2003测试的,看看2007的参数值是多少
#11
schtg2019-06-21 11:31
sdta版主、吹水版主的,均能运行,且得到准确结果哈,谢谢!
#12
吹水佬2019-06-21 11:32
回复 9楼 hqc2002
全新装了个 office professional plus 2007 来测试,运行未见异常。
#13
sdta2019-06-21 11:52
4楼代码在WINXP、EXCEL2003、VFP9下运行正常
#14
wangzhiyi2019-06-21 13:24
以下是引用sdta在2019-6-21 11:52:32的发言:

4楼代码在WINXP、EXCEL2003、VFP9下运行正常

如果每个单元格都有数据,你的程序肯定能运行,但是某个单元格是空的话,读过来的数据好像是NULL,确实不能进行REPLACE操作。
#15
hqc20022019-06-22 08:13
如果每个单元都有数据没问题,一旦有空格,就出现图片中的现象,如何解决有空格的问题
#16
chychychy2019-06-24 17:36
回复 15楼 hqc2002
我的电脑测试也是和你说的问题一样,你的如何解决的?是不是阉割版excel的问题?

[此贴子已经被作者于2019-6-24 17:40编辑过]

#17
hqc20022019-06-25 11:27
回复16楼chychychy
四楼吹版的代码,我换了office2003也不行,重新装2007也不行
我没用四楼代码,用的三楼sdta版的代码,一直点击忽略也能导入
#18
sxy1662019-06-25 15:07
压缩文件下载下来解压错误,看不见楼主的文件。
excel转dbf ,我就用 appe from ,很好用啊
1