主题:为什么把excel表格中的数据导入dbf时后面会多出许多空记录?
tomjerry67
[专家分:0] 发布于 2011-11-22 10:41:00
各位老师,请问我用append命令从excel文件导入数据时为什么后面总会多出许多空记录,例如
append from c:\new.xls type xl5 到new.dbf时会多出很多空记录,原本excel中有20条记录,可导入后有一两百条记录,20条以后都是空的,我先把excel中20条以后的空记录删掉200条保存也没用,还是会多出空记录,只是数量不等,以前我也用这个命令导入都没问题的,为什么?哪位老师给解答一下
回复列表 (共4个回复)
沙发
moz [专家分:37620] 发布于 2011-11-22 22:04:00
你把这个.xls文件里面那20条有效记录复制到一个新表中去另存为新.xls文件后再导入看看效果就知道旧.xls文件后面的记录是否真的是空记录了。
板凳
tomjerry67 [专家分:0] 发布于 2011-11-23 10:37:00
按照moz老师说的正常了,我想是不是因为我之前的表格里有内容,我是用的清除内容而不是删除,系统认为被清除了内容的行仍然是一个有效记录。
再请问moz老师怎么样分辨excel里面的有内容有效的记录数有多少?
人眼看起来都是空行没区别的
3 楼
moz [专家分:37620] 发布于 2011-11-23 15:20:00
?sheet1.UsedRange.rows.Count
表格中,也许看上去是空的,是因为它没有内容。
但它可能存在有格式,(试试有线边框就知道了),
可能VFP把这些“非空”单元格当成是有效数据了吧。
利用EXCEL的Application对象按照条件进行“非空”识别是一个办法,但效率偏低。
我的建议是利用中间表,再进行有效无效的数据筛别导入。
[quote]APPEND FROM FileName | ?[FIELDS FieldList] [FOR lExpression]
[[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD |
SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV | XLS | XL5
[SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage]
FOR lExpression
为当前选定表中每一条 lExpression 为真(.T.) 的记录追加新记录。直至达到当前选定表的末尾。如果省略 FOR ,则整个源文件记录都追加到当前表中。 [/quote]
4 楼
tomjerry67 [专家分:0] 发布于 2011-11-23 17:38:00
非常感谢moz老师,谢谢!
我来回复