我正在使用Apache POI库,但是我有一些不想读取的数据-因此,我需要该程序才能从特定的行开始读取文件。
我想要来自第10行之后的单元格和行的所有数据,直到文档为空。我已经尝试使用以下代码。
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
Row getSchool = firstSheet.getRow(10);
Iterator<Cell> cellIterator = getSchool.cellIterator();
while (iterator.hasNext())
{
while (cellIterator.hasNext())
{
...
}
}
但这只会给我第10行单元格中的所有数据。
我期待收到您的来信:-)。
您仅从此处的第11行获取数据:
Row getSchool = firstSheet.getRow(10);
请参阅Sheet.getRow(int rownum)的文档
返回从0开始的逻辑行(非物理行)。如果您要求未定义的行,则会得到一个空值。也就是说,第4行代表纸张上的第五行。
检查文档中有关如何遍历行和单元格的示例。
您可以使用类似:
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
for (Row row : firstSheet) {
for (Cell cell : row) {
// Do something here
}
}
如果要遍历一行中的所有单元格,请检查如何遍历单元格,并控制丢失/空白的单元格。
将CellIterator
只会返回该文件,这在很大程度上是那些具有价值或花式中定义的细胞,但它依赖于Excel中。
您可以将Row.MissingCellPolicy指定为:
Row.getCell(int, MissingCellPolicy)
这是一个例子:
int lastColumn = Math.max(row.getLastCellNum(), MY_MINIMUM_COLUMN_COUNT);
for (int cn = 0; cn < lastColumn; cn++) {
Cell c = row.getCell(cn, Row.RETURN_BLANK_AS_NULL);
if (c == null) {
// The spreadsheet is empty in this cell
} else {
// Do something useful with the cell's contents
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句