2011-03-02 181 views
0
InputStream inp = new FileInputStream("workbook.xls"); 
HSSFWorkbook wb = new HSSFWorkbook(inp); 

String text=""; 
Sheet sheet1 = wb.getSheetAt(0); 

for (Row row : sheet1) { 
    for (Cell cell : row) { 
     // Do something here 
     ExcelExtractor extractor = new ExcelExtractor(wb); 
     text=extractor.getText(); 
     System.out.print("text="+text); 
    } 
} 
sheet1.shiftRows(0,sheet1.getLastRowNum(),1); 

在调用shiftrows之后,我没有在excel表中得到结果。数据保持不变。我在哪里做错了?在apache poi中shiftRows不工作

回答

1

这是因为你的工作簿只开放阅读,因为它从InputStream

InputStream inp = new FileInputStream("workbook.xls"); 

来让你必须编写新的工作簿对象出一个新的xsl电子表格的结果。喜欢的东西...

File outWB = new File("workbook2.xls"); 
OutputStream out = new FileOutputStream(outWB); 
wb.write(out); 
out.flush(); 
out.close(); 

你能做到这一点,以相同的文件,但你需要inp.close()第一。

+0

这是否意味着我无法对现有工作表进行更改?如果我必须对现有的表格进行更改;我是否每次都必须创建一个新表单? – sunandan 2011-03-02 19:17:04

+0

感谢shahed .. – sunandan 2011-03-02 19:19:55