2009-11-17 38 views
17
import java.io.*; 
import jxl.*; 
class Xlparsing 
{ 
    Workbook wb =wb.getWorkbook(new File(
    "C:\\Documents and Settings\\kmoorthi\\Desktop\\ak\\new.xls")); 
    // Illegal forward reference What it means 
    Sheet st = wb.getSheet(0); 
    Cell cell1 = st.getCell(0,0); 
    String a1 = cell1.getContents(); 
    public static void main(String s[]) 
    { 
    System.out.println(new Xlparsing().a1); 
    } 
} 

Xin chào Khi tôi cố gắng trích xuất dữ liệu từ lỗi tham chiếu chuyển tiếp bất hợp pháp của excel, xuất hiện trong việc tạo đối tượng tệp.tham chiếu về phía trước bất hợp pháp trong java

Cách giải quyết vấn đề này?

+0

Nếu nhận xét trong mã là câu hỏi, khi nào bạn nhận được? Từ đâu? Như một ngoại lệ? Nó chắc chắn không phải là một khái niệm về javac để ném tài liệu tham khảo về phía trước bất hợp pháp khi đối mặt với người dùng. Nếu nó là một ngoại lệ, nó có thể rất liên quan đến tệp xls mà chúng ta không có quyền truy cập. – Fredrik

+0

Lỗi này xảy ra khi tôi cố gắng biên dịch mã –

+0

Bạn có thể hiển thị lỗi trình biên dịch không? – notnoop

Trả lời

49

"Tham chiếu về phía trước bất hợp pháp" có nghĩa là bạn đang cố gắng sử dụng biến trước khi được xác định.

Trong trường hợp này, bạn đang cố gắng gọi phương thức trên wb trong tuyên bố wb.

Workbook wb = wb.getWorkbook(...); 
+3

Có vẻ như getWorkbook là tĩnh trong API nên: Workbook wb = Workbook.getWorkbook (...); nên làm thủ thuật – barrowc

+0

Ah, tôi đã tìm kiếm để tìm ra API nào anh ấy đang sử dụng nhưng không thể tìm thấy kết quả khớp chính xác. – erickson

+0

JExcelAPI: http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/Workbook.html – sanastasiadis

-1

mặc dù getWorkbook là tĩnh, do đó, mã này phải hoạt động. Nhưng ở đây, sử dụng tham chiếu trước khi khai báo hoặc trong cùng một tuyên bố như khai báo là gây ra lỗi "Chuyển tiếp tham chiếu tức là sử dụng tham chiếu trước khi khai báo".

+1

'Getworkbook' có thể là tĩnh, nhưng' wb' thì không. Bạn vẫn không thể gọi phương thức tĩnh trên tham chiếu chưa được khởi tạo. –

0

Chuyển tiếp Tham chiếu bất hợp pháp là thuật ngữ đi vào hình ảnh khi giá trị biến không toàn cầu không được khởi tạo được gán cho biến toàn cầu.

Trong trường hợp của bạn Workbook wb = wb.getWorkbook(new File("----")); - wb chưa được khởi tạo trước khi gọi phương thức getWorkbook(). Để tránh FIR, bạn nên khởi tạo wb.

0

Tôi đoán rằng ý định được gọi là 'tĩnh' phương pháp getWorkbook(), như bạn cần. Vì vậy, bạn nên thay đổi số lần khởi tạo thành viên wb thành:

Workbook wb = Workbook.getWorkbook(...) 
Các vấn đề liên quan