首页>代码>使用JSP+jqueryUI+java Servlet通过Apache POI实现Excel导入导出>/POIExcel/src/wk/servlet/ExcelExportServlet.java
package wk.servlet; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import wk.model.UserBean; import wk.util.DBTool; public class ExcelExportServlet extends HttpServlet { // 确认当前系统属性。获取当前系统属性。系统文件分割 public static final String FILE_SEPARATOR = System.getProperties() .getProperty("file.separator"); @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //请求发送都是utf-8 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); List<UserBean> list = new ArrayList<UserBean>(); DBTool dbt = new DBTool(); PreparedStatement pstmt = null; Connection conn = null; ResultSet rs = null; // 本地年月日时分秒作为文件名 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String fileName = sdf.format(new Date()) + ".xlsx"; // 文件路径 String filePath = FILE_SEPARATOR + fileName; try { // 输出流 OutputStream os = new FileOutputStream(filePath); // 工作区 XSSFWorkbook wb = new XSSFWorkbook(); // 工作区名 XSSFSheet sheet = wb.createSheet("通讯录"); // 创建表头 XSSFRow 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("地址"); try { conn = dbt.getConnection(); String sql = "SELECT id,name,sex,age,tell,address FROM testexcel"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { // 创建bean对象 UserBean ub = new UserBean(); // 遍历数据 ub.setId(rs.getInt("id")); ub.setName(rs.getString("name")); ub.setSex(rs.getString("sex")); ub.setAge(rs.getInt("age")); ub.setTell(rs.getInt("tell")); ub.setAddress(rs.getString("address")); list.add(ub); } // 遍历数据装进table for (int i = 0; i < list.size(); i++) { // sheet.createRow(i+1) 因为表头是0 XSSFRow rows = sheet.createRow(i + 1); rows.createCell(0).setCellValue(list.get(i).getId()); rows.createCell(1).setCellValue(list.get(i).getName()); rows.createCell(2).setCellValue(list.get(i).getSex()); rows.createCell(3).setCellValue(list.get(i).getAge()); rows.createCell(4).setCellValue(list.get(i).getTell()); rows.createCell(5).setCellValue(list.get(i).getAddress()); } } catch (SQLException e) { e.printStackTrace(); } // 写文件 wb.write(os); // 关闭输出流 os.close(); } catch (Exception e) { e.printStackTrace(); } download(filePath, response); } private void download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名。 String filename = file.getName(); // 以流的形式下载文件。 InputStream fis = new BufferedInputStream(new FileInputStream(path)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes())); response.addHeader("Content-Length", "" + file.length()); OutputStream toClient = new BufferedOutputStream( response.getOutputStream()); response.setContentType("application/vnd.ms-excel;charset=utf-8"); toClient.write(buffer); toClient.flush(); toClient.close(); } catch (IOException ex) { ex.printStackTrace(); } } }
最近下载更多
601601lmy LV5
2023年10月20日
lilily1119 LV4
2023年4月29日
lcy123ww LV5
2022年11月22日
zhangbo2020 LV6
2022年8月22日
liu2022 LV14
2022年7月31日
一直都会顺利的小吴 LV5
2022年2月16日
雪人飞飞 LV2
2022年1月3日
ewan007 LV29
2021年12月26日
地方撒地方的 LV2
2021年12月18日
sl0018 LV13
2021年9月23日
最近浏览更多
601601lmy LV5
2023年10月20日
可是不知道么 LV23
2023年5月6日
lilily1119 LV4
2023年4月29日
xiao小果 LV12
2023年3月23日
hesu2020 LV1
2023年3月20日
夜起星河 LV8
2023年3月9日
微信网友_6145740972576768 LV2
2022年12月21日
lcy123ww LV5
2022年11月22日
zhangbo2020 LV6
2022年8月22日
是你爸爸啊100 LV5
2022年8月8日