搜索
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 怪事:excel表格单元空白时,数据读取的判断?
标题:
怪事:excel表格单元空白时,数据读取的判断?
只看楼主
琅拿度
等 级:
新手上路
帖 子:148
专家分:5
注 册:2016-4-7
结帖率:
84.62%
楼主
已结贴
√
问题点数:17 回复次数:8
怪事:excel表格单元空白时,数据读取的判断?
怪事1:表格单元空白时,isnull()不一定为“T”allt()不一定为“==''”,所以要两个同时判断;
怪事2: 表格不为空白时:比如有的日期 isnull()=.T. and allt()==''=.t. 却成立所以又加入Type('')<>"T"一起判断)
搞不明白
搜索更多相关主题的帖子:
excel表格
2016-04-13 20:38
琅拿度
等 级:
新手上路
帖 子:148
专家分:5
注 册:2016-4-7
第
2
楼
得分:0
摸索了一下,好像解决方法是:
ISNULL(excelapp.cells(x,y).value) && 这个能判断单元是否为空,不能用ISNULL(excelapp.cells(x,y).text)空单元也返回.f.
2016-04-14 00:18
wengjl
等 级:
贵宾
威 望:
108
帖 子:2175
专家分:3785
注 册:2007-4-27
第
3
楼
得分:4
=.null.
empty()
只求每天有一丁点儿的进步就可以了
2016-04-14 08:01
hu9jj
来 自:红土地
等 级:
贵宾
威 望:
396
帖 子:11713
专家分:43267
注 册:2006-5-13
第
4
楼
得分:4
也可以先测试取到数据的类型再作判断。
活到老,学到老! http://www. E-mail:hu-jj@
2016-04-14 08:06
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
5
楼
得分: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
琅拿度
等 级:
新手上路
帖 子:148
专家分:5
注 册:2016-4-7
第
6
楼
得分:0
多谢大家,目前要判断单元是否为空,用混合条件效果不错(注意.value与.text,这两个不能乱用,目前好像是100%成功率的):
IF ISNULL(excelapp.selection.value)=.t. AND empty(excelapp.selection.text)=.t. && 不知道单独使用empty()是否已足够?
MESSAGEBOX('空')
endi
2016-04-14 09:10
琅拿度
等 级:
新手上路
帖 子:148
专家分:5
注 册:2016-4-7
第
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
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
8
楼
得分:0
用NVL()判断看看有无不同
2016-04-14 10:05
琅拿度
等 级:
新手上路
帖 子:148
专家分:5
注 册:2016-4-7
第
9
楼
得分: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
9
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-463610-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.067979 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved