主题:如何使用vfp导入XLS文件筛选替换DBF表中的数据?
rdcftgv
[专家分:0] 发布于 2009-03-07 17:37:00
有一excel文件 名1.xls 内容如下:
姓名 合计
张 100
赵 10
钱 80
孙 30
李 20
王 50
有一vfp文件 名2.dbf 内容如下:
A1 A2
王 10
孙 10
钱 10
李 10
赵 10
注意:两个文件中姓名并不完全相同,所以无法排序后替换
问题:用vfp如何把1.xls中合计内的数据自动按照姓名替换到2.dbf中A2 内呢?
实现结果:
A1 A2
王 50
孙 30
钱 80
李 20
赵 10
谢谢大家!!!
回复列表 (共3个回复)
沙发
qjbzjp [专家分:8830] 发布于 2009-03-07 20:29:00
public myfile
myfile=""
myfile=getfile("xls")
myole= CreateObject("Excel.Application")
myole.WorkBooks.Open(myfile)
myole.WorkSheets(1).Activate
myExcel =myole.APPLICATION.Workbooks.OPEN(myfile)
nrows=myExcel.Worksheets(1)
UsedRange =nrows.UsedRange
r = UsedRange.ROWS.COUNT
=nrows.usedrange
USE 2
IF !FILE("xm.idx")
INDEX ON A1 to xm
ENDIF
FOR i=1 to r
GO top
LOCA FOR ALLTRIM(A1)=ALLTRIM(myole.cells(i,1).value)
IF FOUND()
REPL A2 WITH myole.cells(i,2).value
endif
ENDFOR
myole.quit
BROWSE
板凳
rdcftgv [专家分:0] 发布于 2009-03-08 04:18:00
谢谢qjbzjp的答复!!!而且两处你都答复了,不愧是斑竹!真热心!
我刚接触vfp,好多都不懂不好意思!
1.我把俩文件放到vfp目录下,打开vfp9.0复制
public myfile
myfile=""
myfile=getfile("xls")
myole= CreateObject("Excel.Application")
myole.WorkBooks.Open(myfile)
myole.WorkSheets(1).Activate
myExcel =myole.APPLICATION.Workbooks.OPEN(myfile)
nrows=myExcel.Worksheets(1)
UsedRange =nrows.UsedRange
r = UsedRange.ROWS.COUNT
=nrows.usedrange
USE 2
IF !FILE("xm.idx")
INDEX ON A1 to xm
ENDIF
FOR i=1 to r
GO top
LOCA FOR ALLTRIM(A1)=ALLTRIM(myole.cells(i,1).value)
IF FOUND()
REPL A2 WITH myole.cells(i,2).value
endif
ENDFOR
myole.quit
BROWSE
到命令窗口,回车,弹出选择dbf文件的窗口,选择2.dbf打开后数据并没更改.
2.先打开2.dbf再执行命令数据也没更改.
我哪一步错了?还是漏了什么?
3 楼
qjbzjp [专家分:8830] 发布于 2009-03-08 09:11:00
是数据路径的问题吧,在USE 2之前增加一条命令试试:
SET Defa to 'C:\Documents and Settings\qjbzjp\桌面' &&假设你的文件放在桌面上'
USE 2
我来回复