获取List中的单个元素

时间:2016-06-11 10:38:46

标签: java excel apache-poi

我从excel中获取数据。并存储在列表中。然后 我想在List中获得一个元素 我的问题在main方法中首先循环它需要一个List详细信息。在第二个循环中,我想要该List的一个元素 例如[OS1, 10.23.14.25, 12.0, wradadasda]我想OS1我怎样才能得到它。 在我的代码second loop中也显示整个数组。

public static List readDataFromExcel() throws IOException{
        String filename = "path";

        List sheetData = new ArrayList();

        FileInputStream fis = null;
        try {

            fis = new FileInputStream(filename);

            XSSFWorkbook workbook = new XSSFWorkbook(fis);
            XSSFSheet sheet = workbook.getSheetAt(0);

            Iterator rows = sheet.rowIterator();
            while (rows.hasNext()) {
                XSSFRow row = (XSSFRow) rows.next();
                Iterator cells = row.cellIterator();

                List data = new ArrayList();
                while (cells.hasNext()) {
                    XSSFCell cell = (XSSFCell) cells.next();
                    String value=" ";
                    switch (cell.getCellType()) 
                    {
                        case Cell.CELL_TYPE_NUMERIC:
                            value = BigDecimal.valueOf(cell.getNumericCellValue()).toPlainString();
                            data.add(value);
                            break;
                        case Cell.CELL_TYPE_STRING:
                            value=cell.getStringCellValue();
                            data.add(value);
                            break;
                        case Cell.CELL_TYPE_BLANK:
                            value = " ".toString();
                            data.add(value);
                            break;
                        case Cell.CELL_TYPE_BOOLEAN:
                            value = Boolean.valueOf(cell.getBooleanCellValue()).toString();
                            data.add(value);
                            break;
                    }

                }
                 sheetData.add(data);
                fis.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    return sheetData;
    }

主要方法

public static void main(String[]args) throws IOException{

        List getdatafromexcel = readDataFromExcel();
        List oneserverdetailsList =null;
        for(int i =0;i<getdatafromexcel.size();i++){
            oneserverdetailsList = new ArrayList();
            oneserverdetailsList.add(getdatafromexcel.get(i));
            for(int j=0;j<oneserverdetailsList.size();j++){
                System.out.println(oneserverdetailsList.get(0));
            }

        }

输出图像 -

Excel文件数据 -

1 个答案:

答案 0 :(得分:1)

你的问题不是很明确我正在假设并回答你的问题。

您正在向其他列表添加列表,因此当您致电

getdatafromexcel.get(i) // This will return a list

因此,要访问该元素,请尝试此

oneserverdetailsList.get(0).get(0) //To access OS1 assuming it is in first index. Explaination : First get will return you a list and second get will return you an element.