for
フィルター基準を設定することはできますが、ループの助けを借りています。次のコードは、Excel シートの各行と各列を移動し、フィルター操作を実行します。ループに陥ることなく、特定の条件を直接有効にする方法はありますか?
/* Create Workbook and Worksheet */
FileInputStream in = new FileInputStream(new File("D:\\PNR_AUTOMATION\\match.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(in);
HSSFSheet sheet = workbook.getSheetAt(0);
/*Add filter on the top row*/
AutoFilter filter = sheet.setAutoFilter(CellRangeAddress.valueOf("A1:B1"));
/*Create list of items that has be filtered*/
List<String> list = new ArrayList<String>();
list.add("a");
HSSFRow r1;
/*Loop through Rows and Apply Filter */
for(Row r : sheet) {
for (Cell c : r) {
if (c.getColumnIndex()==0 && (!list.contains(c.getStringCellValue()))) {
r1=(HSSFRow) c.getRow();
if (r1.getRowNum()!=0) {
/*Ignore top row */
r1.setZeroHeight(true); }
}
}
}
FileOutputStream out = new FileOutputStream(
new File("D:\\PNR_AUTOMATION\\match.xls"));
workbook.write(out);
out.close();