利用POI将读取的数据写入Excel

 <%@ page language="java"
 contentType="application/vnd.ms-excel;charset=UTF-8"
 import="org.apache.poi.poifs.filesystem.*,org.apache.poi.hssf.usermodel.*,java.io.*,com.fise.bl.ResumeTable;"
 pageEncoding="UTF-8"%>
<html>
 <head>
  <title>rireki.jsp</title>
 </head>
 <body>
  <%
   //**************************根据ID得到某条记录**********************
   String rid = request.getParameter("rid").toString();
   ResumeTable rt = new ResumeTable();
   rt = rt.showById(rid);
   //**************************填充Excel文档**************************
   POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
     application.getRealPath("/admin/info/") + "/rireki.xls"));
   HSSFWorkbook wb = new HSSFWorkbook(fs);
   HSSFSheet sheet = wb.getSheetAt(0);
   // 氏 名
   HSSFRow row = sheet.getRow(6);
   HSSFCell cell = row.getCell((short) 1);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell.setCellValue(rt.getName());
   // 性 別
   HSSFRow row1 = sheet.getRow(6);
   HSSFCell cell1 = row1.getCell((short) 6);
   cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell1.setCellValue(rt.getSex());
   // 民 族
   HSSFRow row2 = sheet.getRow(7);
   HSSFCell cell2 = row2.getCell((short) 1);
   cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell2.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell2.setCellValue(rt.getNation());
   // 年 齢
   HSSFRow row3 = sheet.getRow(7);
   HSSFCell cell3 = row3.getCell((short) 6);
   cell3.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell3.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell3.setCellValue(rt.getAge());
   // 生年月日
   HSSFRow row4 = sheet.getRow(8);
   HSSFCell cell4 = row4.getCell((short) 1);
   cell4.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell4.setCellType(HSSFCell.CELL_TYPE_STRING);
   HSSFCellStyle cellStyle = wb.createCellStyle();
   cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
   cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
   cell4.setCellValue(rt.getBirthday());
   cell4.setCellStyle(cellStyle);
   // 最終学歴
   HSSFRow row5 = sheet.getRow(8);
   HSSFCell cell5 = row5.getCell((short) 6);
   cell5.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell5.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell5.setCellValue(rt.getXueli());
   // 卒業学校
   HSSFRow row6 = sheet.getRow(9);
   HSSFCell cell6 = row6.getCell((short) 1);
   cell6.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell6.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell6.setCellValue(rt.getSchool());
   // 職歴何年
   HSSFRow row7 = sheet.getRow(10);
   HSSFCell cell7 = row7.getCell((short) 1);
   cell7.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell7.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell7.setCellValue(rt.getJob());
   // 電話番号
   HSSFRow row8 = sheet.getRow(10);
   HSSFCell cell8 = row8.getCell((short) 6);
   cell8.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell8.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell8.setCellValue(rt.getTel());
   // 住 所
   HSSFRow row9 = sheet.getRow(11);
   HSSFCell cell9 = row9.getCell((short) 1);
   cell9.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell9.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell9.setCellValue(rt.getAdd());
   // 外国語能力
   HSSFRow row10 = sheet.getRow(12);
   HSSFCell cell10 = row10.getCell((short) 1);
   cell10.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell10.setCellType(HSSFCell.CELL_TYPE_STRING);
   cell10.setCellValue(rt.getLanguage());
   // Write the output to a file
   FileOutputStream fileOut = new FileOutputStream(application
     .getRealPath("/admin/info/")
     + "/lvlishu.xls");
   wb.write(fileOut);
   fileOut.close();
   //**************************读取Excel中的内容**************************
   OutputStream output = response.getOutputStream();
   response.reset();
   response.resetBuffer();
   response.setContentType("application/vnd.ms-excel;charset=UTF-8");
   FileInputStream in = new FileInputStream(application
     .getRealPath("/admin/info/")
     + "/lvlishu.xls");
   int n = in.available();
   byte[] bytes = new byte[n];
   int m = in.read(bytes, 0, n);
   output.write(bytes, 0, m);
   output.flush();
   output.close();
  %>
 </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值