C#range.Rows.Count不算右 - Excel格式化?

时间:2014-03-20 13:19:01

标签: c# excel count range

我使用C#从Excel获取数据。

为了读出数据我使用这段代码:

for (int rCnt = 2; rCnt <= range.Rows.Count; rCnt++)

工作表长80行,range.Rows.Count表示长135行。 我有2个Excel文件的这个问题。 Excel文件是从Sharepoint生成的,并具有过滤器和其他一些格式。 当我将数据复制到一个空的Excel文件(使用Strg + A,而不是手动选择)时,它会计算正确的行数。 使用第三个Excel文件(也来自Sharepoint),没问题......

也许一个解决方案是首先更改excel文件,它只需要我的程序而不是其他任何东西,所以这样就可以了。

任何想法?

编辑:

我刚刚停止了代码并看到,在80的范围之后,对象中的所有条目都是&#34; null&#34;,所以没有隐藏的数据或其他东西

EDIT2: 我删除了该工作表中的所有数据,现在它有137行,所以必须有一些计算的格式...

1 个答案:

答案 0 :(得分:0)

首先,您提到excel文件有一些过滤和格式化。可能是某些格式应用于文件中的前135行,因此select会将它们全部返回? 其次,你用什么来阅读Excel文件?你用OleDb吗? 其余的返回行是否为空?

如果是这种情况你可以使用:SELECT * FROM SHEET WHERE [Column] IS NOT NULL