在jsp页面通过一个按钮将数据库中的数据导出为excel文件

在项目过程中遇到要将数据通过一个按钮导出excel,网上找了很多的办法,现在找到一种,亲测有效,

1.先安装poi插件

我这边是通过poi插件进行的转换

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>3.15</version>
</dependency>

2.在jsp页面添加一个按钮

我这边是通过一个按钮进入到对应的控制层下的post方法中,在post中进行转换导出

<form action="/ygxx" method="post">
  <input type="button" value="打印" onclick="printpage()" />
  <input type="submit" value="导出为表格" />导出路径默认D盘
</form>

3.在对应控制层的post方法下写转换方法

将下面这些代码插入post方法中

 service = new YgxxSevice();//实例化sevice方法
List<Ygxx> list = service.findAll();//调用查询

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("员工信息表");//定义一个表名
HSSFRow row = sheet.createRow(0);//定义第一行
row.createCell(0).setCellValue("员工编号");//列标题
row.createCell(1).setCellValue("员工姓名");
row.createCell(2).setCellValue("员工性别");
row.createCell(3).setCellValue("员工学历");
row.createCell(4).setCellValue("户口类型");
row.createCell(5).setCellValue("出生日期");
row.createCell(6).setCellValue("婚姻状况");
row.createCell(7).setCellValue("职位");
row.createCell(8).setCellValue("部门");
row.createCell(9).setCellValue("职称");
row.createCell(10).setCellValue("身份证号");
row.createCell(11).setCellValue("合同情况");
row.createCell(12).setCellValue("入职时间");


for (int i=0; i<list.size();i++){//循环调用查询出来的数据,在循环插入
    HSSFRow row1 = sheet.createRow(i+1);//定义i+1行,因为第i行且i的值为零则如果从i开始会和上面定义第一行冲突,所以要从第i+1行开始
    row1.createCell(0).setCellValue(list.get(i).getyId());
    row1.createCell(1).setCellValue(list.get(i).getyName());
    row1.createCell(2).setCellValue(list.get(i).getySex());
    row1.createCell(3).setCellValue(list.get(i).getyXl());
    row1.createCell(4).setCellValue(list.get(i).getyHk());
    row1.createCell(5).setCellValue(list.get(i).getyBirthday());
    row1.createCell(6).setCellValue(list.get(i).getyHy());
    row1.createCell(7).setCellValue(list.get(i).getzName());
    row1.createCell(8).setCellValue(list.get(i).getbName());
    row1.createCell(9).setCellValue(list.get(i).getcName());
    row1.createCell(10).setCellValue(list.get(i).getyIdnumber());
    row1.createCell(11).setCellValue(list.get(i).getyHtqk());
    row1.createCell(12).setCellValue(list.get(i).getyRzsj());

}
//输出流
FileOutputStream output = new FileOutputStream("d:/员工信息记录.xls");//定义输出的磁盘和文件名
workbook.write(output);
output.flush();

你可能感兴趣的:(在jsp页面通过一个按钮将数据库中的数据导出为excel文件)