java - 读取excel文件并添加到java实体类中

标签 java excel

我正在使用 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);
            }

在这里,我的代码可以将单元格内容添加到 vector 对象中。但我想将单元格内容值设置到 Employee 类属性中。请告诉我如何实现这一点。我没有从 emp 对象中获得正确的值。当我将内容添加到列表中时,我在代码中做错了什么

最佳答案

您必须手动设置这些值。

您可以编写一个 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);

关于java - 读取excel文件并添加到java实体类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361990/

相关文章:

Java,在游戏中为敌人的波浪制作和放置循环的最佳方法

java - 对于同时运行的 2 个线程来说,多少 sleep 时间比较合适

python - 如何使用python删除excel中的合并行?

PhpSpreadSheet:如何将工作簿工作表保存在单个 CSV 文件中

python - 使用 xlwings 操作用户表单

excel - 条件格式 "Highlight Duplicate Values"突出显示非重复项

JavaFX:带有关闭按钮的 HBox

java - 如何通过 AnnotationProcessor 访问 TypeUse 注解

java - 如何正确使 dbunit 引用 xml 数据集中的 dtd 文件?

文件迭代中的 PHPExcel 日期问题