回 帖 发 新 帖 刷新版面

主题:如何使用vfp导入XLS文件筛选替换DBF表中的数据?

有一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个回复)

沙发

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

板凳

谢谢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 楼

是数据路径的问题吧,在USE 2之前增加一条命令试试:
SET Defa to 'C:\Documents and Settings\qjbzjp\桌面'      &&假设你的文件放在桌面上'
USE 2

我来回复

您尚未登录,请登录后再回复。点此登录或注册