2011-03-02 180 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