回 帖 发 新 帖 刷新版面

主题:为什么把excel表格中的数据导入dbf时后面会多出许多空记录?

各位老师,请问我用append命令从excel文件导入数据时为什么后面总会多出许多空记录,例如
append from c:\new.xls type xl5 到new.dbf时会多出很多空记录,原本excel中有20条记录,可导入后有一两百条记录,20条以后都是空的,我先把excel中20条以后的空记录删掉200条保存也没用,还是会多出空记录,只是数量不等,以前我也用这个命令导入都没问题的,为什么?哪位老师给解答一下

回复列表 (共4个回复)

沙发

你把这个.xls文件里面那20条有效记录复制到一个新表中去另存为新.xls文件后再导入看看效果就知道旧.xls文件后面的记录是否真的是空记录了。

板凳

按照moz老师说的正常了,我想是不是因为我之前的表格里有内容,我是用的清除内容而不是删除,系统认为被清除了内容的行仍然是一个有效记录。

再请问moz老师怎么样分辨excel里面的有内容有效的记录数有多少?
人眼看起来都是空行没区别的

3 楼

?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 楼

非常感谢moz老师,谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册