使用Apache POI从Excel文件中获取列?

pos*_*def 15 java apache excel apache-poi

为了进行一些统计分析,我需要在Excel工作表的列中提取值.我一直在使用Apache POI包来读取Excel文件,当需要迭代行时,它可以正常工作.但是,我无法找到任何关于在API(链接文本)和谷歌搜索中获取列的信息.

因为我需要获取不同列的最大值和最小值并使用这些值生成随机数,所以不需要拾取单个列,唯一的另一个选择是迭代行和列以获取值并逐个比较,这不是听起来非常节省时间.

关于如何解决这个问题的任何想法?

谢谢,

Gag*_*arr 18

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());
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

然后,它将为您提供该列中的所有数字单元格值.