使用Java获取给定excel中特定行的列数
我想要在Excel中的特定行的列数。 这怎么可能? 我使用POI API
但我只能得到列数到7。
try { fileInputStream = new FileInputStream(file); workbook = new HSSFWorkbook(fileInputStream); Sheet sheet = workbook.getSheet("0"); int numberOfCells = 0; Iterator rowIterator = sheet.rowIterator(); /** * Escape the header row * */ if (rowIterator.hasNext()) { Row headerRow = (Row) rowIterator.next(); //get the number of cells in the header row numberOfCells = headerRow.getPhysicalNumberOfCells(); } System.out.println("number of cells "+numberOfCells); }
我想要一个特定行号的列数为10。 excel列不一样
有两件事你可以做
使用
int noOfColumns = sh.getRow(0).getPhysicalNumberOfCells();
要么
int noOfColumns = sh.getRow(0).getLastCellNum();
他们之间有一个很好的区别
- 选项1给出了实际填充内容的列号(如果10列的第二列未填满,则会得到9)
- 选项2只是给你最后一列的索引。 因此完成'getLastCellNum()'
/** Count max number of nonempty cells in sheet rows */ private int getColumnsCount(XSSFSheet xssfSheet) { int result = 0; Iterator<Row> rowIterator = xssfSheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); List<Cell> cells = new ArrayList<>(); Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { cells.add(cellIterator.next()); } for (int i = cells.size(); i >= 0; i--) { Cell cell = cells.get(i-1); if (cell.toString().trim().isEmpty()) { cells.remove(i-1); } else { result = cells.size() > result ? cells.size() : result; break; } } } return result; }
- Java:将XML内容的StringWriter转换成Excel文件
- 添加新行后Excel文件不会更改
- 评估公式并从单元格中删除公式
- Apache POIstring公式错误
- 删除包含特定string的多个行
- Apache POI:xlsx不能用MS Office excel打开文件
- java.lang.NoClassDefFoundError:org / apache / poi / ss / usermodel / ExtendedColor
- POI – date格式dd-mmm-yy未被识别为Excel格式
- 使用apache POI将hashmap的每个元素(键值对)写入同一工作簿中的不同Excel表单