| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2157 人关注过本帖
标题:请教: VFP 环境下读取 EXCEL 电子表格数据。
只看楼主 加入收藏
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
请教: VFP 环境下读取 EXCEL 电子表格数据。
本人在实际工作遇到一个问题,就是从一个有多行表头的EXCEL电子表格中读取数据的问题,基本问题都能解决,在读取EXCEL文件单元可数据时,使用m1=myexcel.Cells(2,1).Value可以,但是一旦把两个常量改为变量命令就报错。比如说使用循环,那么CELLS(行号,列号)中的行号或列号势必要使用变量,程序运行时就报错:CELLS不是一个对象。希望能有高手指点迷津。谢谢。
搜索更多相关主题的帖子: EXCEL 电子 
2014-05-08 14:26
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:4 
x=CREATEOBJECT("Excel.application")
y=x.workbooks.open("e:\a.xlsx")
UsedRange=y.worksheets("sheet1").UsedRange
FOR i=1 TO UsedRange.rows.count
 FOR j=1 TO UsedRange.columns.count   
   MESSAGEBOX(x.cells(i,j).value)
   NEXT j
   NEXT i
我这儿可以
2014-05-08 15:30
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
楼上你的运行环境是什么?我是XP+2003+VFP9
2014-05-08 16:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
以下是引用wangzhiyi在2014-5-8 16:11:23的发言:

楼上你的运行环境是什么?我是XP+2003+VFP9
y=x.workbooks.open("e:\a.xlsx")
版本比2003高
2014-05-08 16:26
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11774
专家分:43421
注 册:2006-5-13
收藏
得分:2 
用变量指定单元格的行列不会有问题的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-05-08 19:24
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
收藏
得分:2 
我也从未遇到过楼主所描述的问题。楼主能否贴出一段代码,看看问题出在哪?

泉城飞狐
2014-05-08 21:18
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:2 
我是win 7+2013+vfp9
2014-05-08 21:53
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:2 
2楼的代码可行。

相互学习,互相交流,共同提高。
2014-05-09 07:41
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:2 
……

[ 本帖最后由 qjbzjp 于 2014-5-9 07:42 编辑 ]

相互学习,互相交流,共同提高。
2014-05-09 07:41
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
SET talk off
SET SAFETY off
M_File=GETFILE('xls','电子表格文件')
IF M_File=" "  
   =MESSAGEBOX("请选择待导入的电子表格文件!",0+48,"提示")
   RETURN
ELSE  
   IF JUSTEXT(M_FILE)#"XLS"
      =MESSAGEBOX("您选择的不是EXCEL文档!",0+48,"提示")
      RETURN
   ENDIF
ENDIF  
USE ?
ZAP  
myexcel=createobject('excel.application')
myexcel.visible=.f.
bookexcel=myexcel.workbooks.open(M_File)
o_SheetName=myexcel.application.ActiveSheet.Name
UsedRange =bookexcel.worksheets(o_SheetName).UsedRange
o_cols=UsedRange.columns.count
IF UsedRange.rows.count<=1  
   =MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示")
ELSE  
   for i=5 to UsedRange.rows.count
       APPEND BLANK   
       REPLACE xm WITH myexcel.cells(i,2),zymc WITH myexcel.cells(i,3)
   ENDFOR
ENDIF  
myexcel.workbooks.close &&关闭工作区
myexcel.quit &&关闭excel
brow
这是我的程序原文,运行到REPLACE 那行就报错“CELLS不是一个对象”,然后我将程序挂起,直接到窗口把命令中I换成常量5执行       REPLACE xm WITH myexcel.cells(5,2),zymc WITH myexcel.cells(5,3)就不报错。谢谢各位大侠伸手援助。
2014-05-09 16:15
快速回复:请教: VFP 环境下读取 EXCEL 电子表格数据。
数据加载中...
 
   



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

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