此处用Servlet实现服务器端的处理,相关依赖包见附件,不说废话直接上代码。直接实现功能导出数据到EXcel.
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serializable;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExportExelServlet extends HttpServlet {
/**
* Constructor of the object.
*/
public ExportExelServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.setContentType("text/html");
// PrintWriter out = response.getWriter();
// out
// .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
// out.println("<HTML>");
// out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
// out.println(" <BODY>");
// out.print(" This is ");
// out.print(this.getClass());
// out.println(", using the GET method");
// out.println(" </BODY>");
// out.println("</HTML>");
// out.flush();
// out.close();
generatorSheeter(response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
*往Excel中填充数据
*/
private void setCellDataJXL(WritableSheet sheet)
throws RowsExceededException, WriteException {
Label label = null;
// 得到需要到处的数据。
List<User> list = new ArrayList<User>();
User user=new User();
user.setUserName("zhangming");
user.setSex("male");
list.add(user);
User user1=new User();
user1.setUserName("zhangming1");
user1.setSex("male");
list.add(user1);
User user2=new User();
user2.setUserName("zhangming2");
user2.setSex("male");
list.add(user2);
User user3=new User();
user3.setUserName("zhangming3");
user3.setSex("male");
list.add(user3);
for (int i = 0; i < list.size(); i++) {
User bean = list.get(i);
// 项目编号
label = new Label(0, i + 1, bean.getUserName());
sheet.addCell(label);
// 项目名称
label = new Label(1, i + 1, bean.getSex());
sheet.addCell(label);
}
}
/**
* 生成Excel表单
*
* @throws IOException
*/
private void generatorSheeter(HttpServletResponse response)
throws IOException {
HttpServletResponse response_1 = response;
// 设置响应头和保存文件名
response_1.reset();
response_1.setContentType("APPLICATION/OCTET-STREAM");
response_1.setHeader("Content-Disposition", "attachment; filename=\""
+ URLEncoder.encode("收件受理异常.xls", "UTF-8") + "\"");
WritableWorkbook workbook = Workbook.createWorkbook(response_1
.getOutputStream());
WritableSheet sheet = workbook.createSheet("收件受理异常", 0);
String[] title = { "用户名", "性别"};
Label label = null;
try { // 创建表头
for (int i = 0; i < title.length; i++) {
label = new Label(i, 0, title[i]);
sheet.addCell(label);
}
this.setCellDataJXL(sheet);
} catch (Exception e) {
e.printStackTrace();
}
workbook.write();
// 关闭对象,释放资源
workbook.close();
response_1.getOutputStream().flush();
// //关闭对象,释放资源
response_1.getOutputStream().close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String userName;
private String sex;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}