2014-12-07 89 views
1

我試圖從一個xlsx文件中讀取一個基本的java程序,並將每行放入一個arrayList中作爲一個字符串,之後我會將該字符串拆分爲行。將XLSX隱藏到字符串中並將其添加到數組

下面是我的代碼,但我試圖找出我出錯的地方,因爲它似乎沒有做任何事情。

List<String> text = new ArrayList<String>(); 

Workbook wb = WorkbookFactory.create(new File("input.xlsx")); 
DataFormatter fmt = new DataFormatter(); 
Sheet s = wb.getSheetAt(0); 

for (Row r : s) { 
    StringBuffer sb = new StringBuffer(); 
    for (Cell c : r) { 
     if (sb.length() > 0) sb.append(" - "); 
     sb.append(fmt.formatCell(c)); 
    } 
    text.append(sb.toString()); 
} 

任何幫助,將不勝感激。

回答

0

您沒有讀取任何單元格。看到這個例子:

import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
//.. 
FileInputStream file = new FileInputStream(new File("C:\\test.xlsx")); 

//Get the workbook instance for XLS file 
XSSFWorkbook workbook = new XSSFWorkbook (file); 

//Get first sheet from the workbook 
XSSFSheet sheet = workbook.getSheetAt(0); 

//Get iterator to all the rows in current sheet 
Iterator<Row> rowIterator = sheet.iterator(); 

//Get iterator to all cells of current row 
Iterator<Cell> cellIterator = row.cellIterator(); 


try { 

    FileInputStream file = new FileInputStream(new File("C:\\test.xls")); 

    //Get the workbook instance for XLS file 
    HSSFWorkbook workbook = new HSSFWorkbook(file); 

    //Get first sheet from the workbook 
    HSSFSheet sheet = workbook.getSheetAt(0); 

    //Iterate through each rows from first sheet 
    Iterator<Row> rowIterator = sheet.iterator(); 
    while(rowIterator.hasNext()) { 
     Row row = rowIterator.next(); 

     //For each row, iterate through each columns 
     Iterator<Cell> cellIterator = row.cellIterator(); 
     while(cellIterator.hasNext()) { 

      Cell cell = cellIterator.next(); 

      switch(cell.getCellType()) { 
       case Cell.CELL_TYPE_BOOLEAN: 
        System.out.print(cell.getBooleanCellValue() + "\t\t"); 
        break; 
       case Cell.CELL_TYPE_NUMERIC: 
        System.out.print(cell.getNumericCellValue() + "\t\t"); 
        break; 
       case Cell.CELL_TYPE_STRING: 
        System.out.print(cell.getStringCellValue() + "\t\t"); 
        break; 
      } 
     } 
     System.out.println(""); 
    } 
    file.close(); 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
相關問題