使用Apache POI从Excel文件中获取列?
问题内容:
为了进行一些统计分析,我需要在Excel工作表的列中提取值。我一直在使用Apache
POI包从Excel文件中读取数据,当需要迭代行时,它可以很好地工作。但是我找不到关于在API(链接文本)或通过Google搜索获取列的任何信息。
由于我需要获取不同列的最大值和最小值并使用这些值生成随机数,因此,无需选择单个列,唯一的选择是遍历行和列以获取值并一一比较。听起来不那么省时。
关于如何解决此问题的任何想法?
谢谢,
问题答案:
Excel文件是基于行而不是基于列的,因此获取列中所有值的唯一方法是依次查看每一行。没有更快的方法到达列,因为列中的单元格没有存储在一起。
您的代码可能希望是这样的:
List<Double> values = new ArrayList<Double>();
for(Row r : sheet) {
Cell c = r.getCell(columnNumber);
if(c != null) {
if(c.getCellType() == Cell.CELL_TYPE_NUMERIC) {
valuesadd(c.getNumericCellValue());
} else if(c.getCellType() == Cell.CELL_TYPE_FORMULA && c.getCachedFormulaResultType() == Cell.CELL_TYPE_NUMERIC) {
valuesadd(c.getNumericCellValue());
}
}
}
然后,您将获得该列中的所有数字单元格值。