0

jxl ライブラリを使用して Excel ファイルを読み込んでいますが、セルの内容を pojo クラス プロパティに追加するときに問題に直面しています。そのような私はEmployeeクラスを持っています;

public class Employee {

    private String id;
    private String name;
    private String email;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }




}



public static void read(String path) throws IOException {
        File inputWorkbook = new File(path);
        Workbook w;
        String[] excel_data  = new String[3]; 
        try {
            w = Workbook.getWorkbook(inputWorkbook);
            // Get the first sheet
            Sheet sheet = w.getSheet(0);
            // Loop over first 10 column and lines

            Vector<Employee> data = new Vector<Employee>();
            for (int j = 1; j < sheet.getRows(); j++) 
              { 

                          Employee emp = new Employee()
               for (int i = 0; i < sheet.getColumns(); i++) 
               { 
                   Cell cell = sheet.getCell(i, j);
                 //  d.add(cell.getContents());
                               emp.setId(cell.getContents());
                              emp.setName(cell.getContents());
                              emp.setEmail(cell.getContents());
                }
                 //  d.add("\n");
                   data.add(emp);   

                //insertEmployee(emp);
            }

ここで私のコードは、セルの内容をベクター オブジェクトに追加できます。しかし、セルのコンテンツ値をEmployeeクラスのプロパティに設定したい.これを達成する方法を教えてください.empオブジェクトから正しい値を取得していません.コンテンツをリストに追加するときにコードで間違っていたこと

4

1 に答える 1

2

値を手動で設定する必要があります。

次のように、switch ステートメントを記述して、各列インデックスの値を設定できます。

List<Employee> employees = new ArrayList<Employee>();
...
Employee emp = new Employee();
for (int i = 0; i < sheet.getColumns(); i++) 
{ 
    Cell cell = sheet.getCell(i, j);
    switch (i) {
    // column 0 = ID
    case 0:
        emp.setId(cell.getContents());
        break;
    // column 1 = Name
    case 1:
        emp.setName(cell.getContents());
        break;
    // column 2 = Email
    case 2:
        //... etc
        break;
    }

}
employees.add(emp);
于 2012-11-13T14:05:00.947 に答える