欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用jxl导出Excel操作

程序员文章站 2024-02-24 12:58:28
...

使用jxl导出Excel,至于导入,下次写,使用jxl,是需要导入关于jxl的包的,这个自己去网上面下载就可以了。
现在直接上代码。
Controller层的调用如下:

@Controller
@RequestMapping("/StudentController")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @RequestMapping("/selStu")
    public String selStudent(Model model,String type){
        List<Student> list=studentService.selStudent();
        model.addAttribute("list", list);

        if(type!=null){//这里是判断是否要执行导出功能
            ExcelOperationUtil excelUtil = new ExcelOperationUtil();
            boolean res = excelUtil.addInfoToExcel(list); 
        }
        return "index-1";
    }
}

导出Excel的类,这个我现在没有办法把它写成一个公共类,以后有机会在研究下,现在只能是一个表,就建一个这个类了。

public class ExcelOperationUtil {
    public boolean addInfoToExcel(List<Student> list){
        try {   
            File folder = new File("E:\\test\\");
            if(!folder.exists()){
                folder.mkdirs();
            }
            File xlsFile = new File(folder,"测试.xls");
            if(!xlsFile.exists()){
                xlsFile.createNewFile();
            }
            //根据File文件对象来创建工作簿
            WritableWorkbook book = Workbook.createWorkbook(xlsFile);
            //创建工作表,设置名称为"第一页"
            WritableSheet sheet = book.createSheet("第一页", 0);   
            Label name = new Label(0, 0, "学生id");//创建单元格
            Label sex = new Label(1,0,"学生姓名");
            Label age = new Label(2,0,"学生电话");
            Label telephone = new Label(3,0,"班主任");
            sheet.addCell(name);//向工作表中添加内容
            sheet.addCell(sex);
            sheet.addCell(age);
            sheet.addCell(telephone);

            for(int i=0;i<list.size();i++){
                Number n=new Number(0,(i+1),list.get(i).getId());//这个是jxl的int类型
//              NumberFormat nf=new NumberFormat("#.##");//表示单元格的所有数字都保留最后两位
//              WritableCellFormat wcf=new WritableCellFormat(nf);

                //Boolean b=new Boolean(0, 1, true);//向工作表中添加Boolean值


                sheet.addCell(new Number(0,(i+1),list.get(i).getId()));//这个是int类型的单元格
                sheet.addCell(new Label(1,(i+1),list.get(i).getName()));
                sheet.addCell(new Label(2,(i+1),String.valueOf(list.get(i).getPhone())));
                sheet.addCell(new Label(3,(i+1),list.get(i).getTeacher()));
            }
            book.write();//将所有内容写入Excel
            book.close();//关闭流
            return true;
        } catch (Exception e) {
            System.out.println("异常信息:"+e.getMessage());
            e.printStackTrace();
            return false;
        }
    }
}

下面是数据库的表,我还是写全吧,不然以后用到的时候,搞得自己一脸懵逼。

private Integer id;//学生id
private String name;//学生名字
private Integer phone;//学生电话
private String teacher;//班主任

这上面这个就是javabean了,也是数据库表,有兴趣的可以去试试。

相关标签: excel jxl