阅读Excel

时间:2015-10-17 08:56:45

标签: java excel apache-poi

以下是我正在尝试使用Apache POI库从Excel文件(.xlsx)中读取的下拉列表。

DropDown List Contents

我浏览了Apache POI文档,并了解了如何继续 -

  1. 使用List从表单中获取XSSFValidations getDataValidations()。我们称之为 validationsList
  2. XSSFValidation中的每个List进行迭代,并通过调用返回列表中的方法getValidationConstraint().getExplicitListValues()来检索内容(即 validationsList )。
  3. 以下是我为此功能编写的完整代码 -

     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中存在一个下拉列表,每次运行时都会打印其字符串值,但每次我尝试获取XSSFValidations列表时,它仍然会打印No Validations Found

    有什么建议吗?我在这里缺少什么?

    编辑 - 在我的问题描述中更改了List变量的名称以匹配我在代码中写的内容,以避免任何混淆。 :)

1 个答案:

答案 0 :(得分:0)

您可以尝试从下面获取下拉数据:

now doorname is locked

如果您找到任何其他解决方案,请在此处发布。这将是非常有帮助的,谢谢!