我有一个从Excel文档中提取数据的java代码。 我想计算列数和总行数(在特定列中)。我怎样才能做到这一点?下面提供了Java代码和期望的o/p。如何使用Java计算Excel文档的列中的行数
(编辑):我应该做些什么修改以获得所需的o/p。我应该写一个循环来获得行和列的数量或有做同样的
期望中的O/P
ColumnA ColumnB ColumnC
Vinayak James Dan
India US Denmark
Total number of Columns: 3
number of data in ColumnA:2
number of data in ColumnB:2
number of data in ColumnC:2
(编辑)的方法: - 已回答这里 - Count number of rows in a column of Excel sheet(Java code provided)
我的Java代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.ss.formula.functions.Column;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelRead {
public static void main(String[] args) {
int count=0;
try {
FileInputStream file = new FileInputStream(new File("C:/Users/vinayakp/Desktop/Book.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch(cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "\t\t");
break;
}
}
System.out.println("");
}
file.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ae) {
ae.printStackTrace();
}
}
}
输出我得到的是:
ColumnA ColumnB ColumnC
Vinayak James Dan
India US Denmark
我需要得到所需的o/p,如上所示。 代码正常工作但是我需要获得计数列和行的值。请为我提供相同的解决方案。我之前在代码中已经解决了这个问题:Issue while reading Excel document (Java code)
这帮助我获得总列数..感谢:)我通过在我的工作表中添加更多的列进行验证,它工作。现在我需要知道给定列中行数的_count_ –
我应该使用'getPhysicalNumberOfRows'并迭代每列以查找每行数据的总计数? –
不,我不这么认为,因为“返回物理定义的行数(不是表中的行数)”(http://poi.apache.org/apidocs/org/apache/poi/ hssf/usermodel/HSSFSheet.html#getPhysicalNumberOfRows%28)29) – acostache