使用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了,也是数据库表,有兴趣的可以去试试。