1
這裏是我想從使用Apache POI庫的Excel文件(.xlsx)中讀取的下拉列表。在Excel中閱讀下拉列表內容
我通過Apache POI文檔瀏覽,並得到如何進行一個基本的想法 -
- 使用
getDataValidations()
片獲得的XSSFValidations
List
。讓我們把它的List
validationsList - 遍歷每個
XSSFValidation
,並通過調用方法上返回的列表(即validationsList)getValidationConstraint().getExplicitListValues()
檢索內容。
下面是完整的代碼,我寫了這個功能 -
CellReference ref = new CellReference("D17");
Row r = userOperationInput_Sheet.getRow(ref.getRow());
if (r != null) {
Cell dropDownCell = r.getCell(ref.getCol());
if (dropDownCell.getCellType() == Cell.CELL_TYPE_STRING) {
System.out.println(dropDownCell.getStringCellValue());
validationsList = userOperationInput_Sheet.getDataValidations();
System.out.println("List Size : "+ validationsList.size());
if (validationsList.isEmpty()) {
System.out.println("No Validations Found");
} else {
for (XSSFDataValidation myValidation : validationsList) {
System.out.println("Found Validation");
listValues = myValidation.getValidationConstraint().getExplicitListValues();
}
}
}
即使我清楚地看到存在的D17下拉,其字符串值的每個I運行時間正在打印,它每次嘗試獲取XSSF驗證列表時仍然會打印No Validations Found
。
有什麼建議嗎?我在這裏錯過了什麼?
編輯 - 在我的問題描述中更改了List變量的名稱以匹配我在代碼中編寫的內容,以避免混淆。 :)