title: Apache poi HSSF returns incorrect no of physical rows
body: <p>I am working on user given Excel file (.xls) and using Apache poi HSSF to read the worksheet. The Excel contains 16 rows physically. </p>
  
  <ul>
  <li>13th row is empty. </li>
  <li>14th row has data</li>
  <li>15th row is empty     </li>
  <li>16th row has data</li>
  </ul>
  
  <p>In this case,  <code>worksheet.getPhysicalRows()</code> returns 13.<br>
  While, <code>worksheet.getLastRowNum()</code> returns 16.</p>
  
  <p>And note if I deleted 13th row, <code>getPhysicalRows()</code> returns 14.<br>
  if I also deleted 16th row, <code>getPhysicalRows()</code> still returns 14. </p>
  
  <p>The last row with valid data is not read at all. </p>
  
  <p>Have you encountered this behaviour with XLS?</p>
  
  <p>Edit: I am not sure if this code can help the question.</p>
  
  <pre><code> excelDocumentStream = new FileInputStream(new File(xlFilePath));
   POIFSFileSystem fsPOI = new POIFSFileSystem(new BufferedInputStream(excelDocumentStream));
   workbook = new HSSFWorkbook(fsPOI);
   int numOfRows = workSheet.getPhysicalNumberOfRows();
   int lastRow = workSheet.getLastRowNum();
  </code></pre>