很多时候,我们需要让用户在网页填写信息,然后导出到Excel。
我们需要在项目中创建一个表单页面export.html。代码如下:
<meta charset="UTF-8"/>
<html>
<head>
<title>导出页面</title>
</head>
<body>
<form action="/ExportServlet" method="post">
<table>
<tr>
<td>用户名:</td><td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密码:</td><td><input type="password" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="导出到Excel"/></td>
</tr>
</table>
</form>
还需要创建一个处理表单请求的servlet组件。ExportServlet.java。代码如下:
package com.yykj.servlet;
import org.apache.poi.hssf.usermodel.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class ExportServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("application/vnd.ms-excel");
resp.addHeader("Content-Disposition", "attachment; filename=logininfo.xls");
String username = req.getParameter("username");
String password = req.getParameter("password");
ServletOutputStream out = resp.getOutputStream();
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("用户注册信息");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue(username);
HSSFCell cell1 = row.createCell(1);
cell1.setCellValue(password);
wb.write(out);
out.flush();
out.close();
}
}
注意:这里要导入poi组件的jar包,并且servlet要在web.xml注册过。