试试这个:
private void excelReader() { String data; try { InputStream is = new FileInputStream("Read.xlsx"); Workbook wb = WorkbookFactory.create(is); Sheet sheet = wb.getSheetAt(0); Iterator rowIter = sheet.rowIterator(); Row r = (Row)rowIter.next(); short lastCellNum = r.getLastCellNum(); int[] dataCount = new int[lastCellNum]; int col = 0; rowIter = sheet.rowIterator(); while(rowIter.hasNext()) { Iterator cellIter = ((Row)rowIter.next()).cellIterator(); while(cellIter.hasNext()) { Cell cell = (Cell)cellIter.next(); col = cell.getColumnIndex(); dataCount[col] += 1; DataFormatter df = new DataFormatter(); data = df.formatCellValue(cell); System.out.println("data: " + data); } } is.close(); for(int x = 0; x < dataCount.length; x++) { System.out.println("col " + x + ": " + dataCount[x]); } } catch(Exception e) { e.printStackTrace(); return; }}经过测试的代码
我使用以下单元格数据创建了一个xlsx文件:
Col0 Col1 Col2 Col3 Col41 a x a q2 b y s w3 c z d e4 d f r5 e t y
dataCount数组的内容是这样的:
列0:6
1:6
第2列:4
col 3:5
第4列:7
右边的数字计算每列(包括标题行)中包含数据的单元格的数量。
如果要排除标题行,只需删除以下行:
rowIter = sheet.rowIterator();
在while循环之前。
这是你想要的?



