| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3144 人关注过本帖
标题:怪事:excel表格单元空白时,数据读取的判断?
只看楼主 加入收藏
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
结帖率:75.86%
收藏
已结贴  问题点数:17 回复次数:8 
怪事: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
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:4 
=.null.

empty()

只求每天有一丁点儿的进步就可以了
2016-04-14 08:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
也可以先测试取到数据的类型再作判断。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2016-04-14 08:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:4 
以下是引用琅拿度在2016-4-14 00:18:18的发言:

摸索了一下,好像解决方法是:
ISNULL(excelapp.cells(x,y).value) && 这个能判断单元是否为空,不能用ISNULL(excelapp.cells(x,y).text)空单元也返回.f.

可能 excelapp.cells(x,y).text 不是NULL,
如果 excelapp.cells(x,y).text 为NULL,EMPTY(excelapp.cells(x,y).text) 应返回.F.。
2016-04-14 08:17
琅拿度
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
用NVL()判断看看有无不同
2016-04-14 10:05
琅拿度
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.047032 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved