2016-06-14 38 views
3

从给定的.xlsx文件中,我尝试使用Java读取数据。如何在java中读取Excel(.xlsx)文件?

enter image description here

我读文件的代码如下:

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

     FileInputStream file = new FileInputStream(new File("E:\\test1.xlsx")); 
     XSSFWorkbook workbook = new XSSFWorkbook(file); 
     XSSFSheet test = workbook.getSheetAt(0); 

     student emp = new student(); 
     Iterator<Row> itr = test.iterator(); 
     itr.next(); 
     while(itr.hasNext()){ 
       Row row = itr.next(); 
       emp.reedData(row); 
       System.out.println(id+","+name+","+options); 
     } 

的方法如下:

void reedData(Row row){ 
    id= row.getCell(0).toString(); 
    name= row.getCell(1).toString(); 
    options= row.getCell(2).toString(); 
} 

但是,我得到的输出是这样的:

1.0,X,play game 
,,sing song 
2.0,Y,play game 
,,sing song 

代替上述情况,我所要的输出是这样的:

1.0,X,{play game,sing song} 
2.0,Y,{play game,sing song} 

这个问题是因为我在.xlsx文件合并两个单元。

有什么建议吗? 提前致谢。

+0

你需要读取行,使你的选项栏,每多行是你的其他列。 – trappski

回答

0

看起来您使用的是Apache POI。 尝试在你的代码合并这2个细胞:

test.addMergedRegion(1,2,0,0); 

或:

sheet.addMergedRegion(new CellRangeAddress(1,2,0,0))