我使用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行,所以必须有一些计算的格式...
答案 0 :(得分:0)
首先,您提到excel文件有一些过滤和格式化。可能是某些格式应用于文件中的前135行,因此select会将它们全部返回? 其次,你用什么来阅读Excel文件?你用OleDb吗? 其余的返回行是否为空?
如果是这种情况你可以使用:SELECT * FROM SHEET WHERE [Column] IS NOT NULL