| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3150 人关注过本帖
标题:怪事:excel表格单元空白时,数据读取的判断?
取消只看楼主 加入收藏
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
结帖率:75.86%
收藏
已结贴  问题点数:17 回复次数:4 
怪事:excel表格单元空白时,数据读取的判断?
怪事1:表格单元空白时,isnull()不一定为“T”allt()不一定为“==''”,所以要两个同时判断;

怪事2: 表格不为空白时:比如有的日期 isnull()=.T. and allt()==''=.t. 却成立所以又加入Type('')<>"T"一起判断)  

搞不明白
搜索更多相关主题的帖子: excel表格 
2016-04-13 20:38
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
摸索了一下,好像解决方法是:
ISNULL(excelapp.cells(x,y).value) && 这个能判断单元是否为空,不能用ISNULL(excelapp.cells(x,y).text)空单元也返回.f.

2016-04-14 00:18
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
多谢大家,目前要判断单元是否为空,用混合条件效果不错(注意.value与.text,这两个不能乱用,目前好像是100%成功率的):

IF ISNULL(excelapp.selection.value)=.t. AND empty(excelapp.selection.text)=.t.  && 不知道单独使用empty()是否已足够?
   MESSAGEBOX('空')
endi
2016-04-14 09:10
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用hu9jj在2016-4-14 08:06:09的发言:

也可以先测试取到数据的类型再作判断。


试了一下:
如果type(.value), 可以返回单元的数据类型,但空白的单元不返回,所以:

是不是用 empty(type('excel.selection.value'))=.t.  就能100%判断单元为空呢?

答案是不行: 因为type(.value), 可以返回单元的数据类型,但空白的单元有时返回“C”有时返回null

[此贴子已经被作者于2016-4-14 10:43编辑过]

2016-04-14 09:21
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用琅拿度在2016-4-14 09:10:35的发言:

多谢大家,目前要判断单元是否为空,用混合条件效果不错(注意.value与.text,这两个不能乱用,目前好像是100%成功率的):

IF ISNULL(excelapp.selection.value)=.t. AND empty(excelapp.selection.text)=.t.  && 不知道单独使用empty()是否已足够?
   MESSAGEBOX('空')
endi


不可以这样,因为当单元为空时ISNULL(excelapp.selection.value)返回值不一定为.t.

所以暂时用:

IF ISNULL(excelapp.selection.value)=.t. or empty(excelapp.selection.text)=.t.  && 只要满足其一条件就认为是空单元
   MESSAGEBOX('空')
endi
2016-04-14 10:45
快速回复:怪事:excel表格单元空白时,数据读取的判断?
数据加载中...
 
   



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

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