【发布时间】:2012-05-01 22:59:12
【问题描述】:
我是 Apache POI 的新手,但我想做的是通过 Excel 文件 (.xls) 读取并将其放入 ArrayList 进行存储,以便以后进行操作。我可以得到整张纸,但我的问题是:我得到了整张纸(~54183 行)。
我想跳过类型为 3 的空白单元格。出于某种原因,当我 system.out.print ArrayList 时,其中包含所有空白单元格。
有没有办法跳过这些而不将它们添加到我正在尝试创建的 ArrayList 中?
我有以下代码:
public ArrayList readExcelFile(String filePath) throws IOException {
ArrayList cellVectorHolder = new ArrayList();
try {
FileInputStream inputFile = new FileInputStream(filePath);
POIFSFileSystem myFileSystem = new POIFSFileSystem(inputFile);
HSSFWorkbook wkbk = new HSSFWorkbook(myFileSystem);
wb = wkbk;
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
HSSFSheet wkSheet = wkbk.getSheetAt(i);
for (Row row : wkSheet) {
ArrayList cellVector = new ArrayList();
for (Cell cell : row) {
if(cell.getCellType() != 3){
cellVector.add(cell);
}
}
cellVectorHolder.add(cellVector);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return cellVectorHolder;
}
不要介意 ArrayList 的名称...我一直在使用 Vectors,直到我最终发现它们从 1.2 或类似的版本开始就被贬值了。
【问题讨论】:
标签: java apache-poi