我正在尝试解析一个excel电子表格,该表格过去使用C#NPOI端口一直很轻松。但是,这次我发现列“ 0”从一行更改为另一行。
我正在尝试访问HSSFRow的Cells属性。似乎单元格0从具有数据的第一个单元格开始,而不是从第一个实际单元格开始。起初,我认为这只是第一个未隐藏的单元格...然后我想很好,也许这只是冻结窗格之后的第一个单元格。当然,这两种可能性都会引发各自的问题,但是现在看来,我发现单元格0只是第一个包含数据的单元格。
我正在尝试分析一个电子表格,该电子表格肯定不是 设计的,其目的是要对其进行分析(制作电子表格的公司很高兴我们以这种方式使用它,但他们只是不这样做)目前尚无资源为我们的目的提供更好的资源。
因此,数据列交错排列,因此,您无需假设对每一行重复一个列中的值,而只是假设对每一行(a中的空白单元格)重复一个值,直到提供新值为止(希望这样可以使感觉?)。
NPOI实现似乎会忽略/截断空单元格,并且只要任何单元格中的值之前都没有数据,就好像任何单元格中的值都可以是单元格0。这真令人沮丧。如何从实际电子表格中的特定列访问数据?
答案 0 :(得分:0)
看起来我应该在发布此问题之前仔细研究一下属性。 HSSFRow上有一个名为FirstCellNum
的属性。
我个人认为这很令人困惑,并且为第一个单元格之前的数据简单地返回一个空值,而不是要求消费者注意此属性并将其添加到他们要访问的列号。但是,哦,这就是他们选择实现它的方式。