2017-03-14 57 views
-2
package readexcel; 

import java.io.File; 
import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 
import org.apache.poi.hssf.usermodel.HSSFCell; 

public class ReadExcel { 

public static void main(String[] args) throws Exception 
{ 
    File f=new File("C:\\Users\\user1\\Desktop\\203132017.xls"); 
    Workbook wb=Workbook.getWorkbook(f); 

    Sheet s=wb.getSheet(0); 
    int row=s.getRows(); 
    int col=s.getColumns(); 
    HSSFCell cell; 

    for (int j=0;j<200;j++){  
     Cell c=s.getCell(10,j); 
     c.getContents();  
     c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);  
    } 
} 
}   

,我發現了以下錯誤的RuntimeException:「不可編譯的源代碼 - 錯誤的符號型」 使用Apache POI

run: 
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: jxl.Cell.setCellType 
    at readexcel.ReadExcel.main(ReadExcel.java:32) 
+4

是否被包含在類路徑上你的依賴?這段代碼是否看起來破損(可能由您的IDE標記)? –

回答

0

看起來使用Apache POI。請包括所有在類路徑

+1

它們在我的類路徑中,代碼沒有使用c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);但我需要它來處理這個問題,因爲我想爲單元格寫一條if語句。當我寫來的時候(c = 8)它說c是類型單元格而8是int。 – justaskingforproject

+1

按照https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html CELL_TYPE_NUMERIC看起來不推薦使用。嘗試以下c.setCellType(HSSFCell.CellType.NUMERIC); –

+1

我改變它,但它沒有工作和單元格類型加下劃線並運行它時 – justaskingforproject

2

你沒有提到你的Apache POI庫的版本的依賴關係和罐子。但是從你描述的錯誤來看,它聽起來像是> 3.15。

請注意,在Apache POI org.apache.poi.hssf.usermodel.HSSFCell類中的方法setCellType(int cellType)已過時和刪除。閱讀docs

您需要改爲使用方法setCellType(CellType cellType)

更換

c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

c.setCellType(org.apache.poi.ss.usermodel.CellType.NUMERIC);

+0

我試過這個它仍然沒有工作。如果有另一種方法將Cell類型轉換爲int,那將會很好。單元格類型仍然帶有下劃線。 – justaskingforproject

+0

或者我可以使用if語句的方式單元格類型 – justaskingforproject

+0

當您嘗試我的以上建議時,獲得的新錯誤是什麼? – VHS

相關問題