package test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
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.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ToExcel extends HttpServlet {
/**
* Constructor of the object.
*/
public ToExcel() {
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.setHeader("Content-disposition", "attachment; filename=file.xls");//设定输出文件头
response.setContentType("application/vnd.ms-excel");//定义输出类型
String classes = request.getParameter("classes");
classes = classes == null || classes.equals("") ? null
: new String(classes.getBytes("ISO8859_1"), "gb2312");
//QueryImp query = new QueryImp();
QueryProce query=new QueryProce();
try {
query.setStudentClass();
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
// 判断classes的值,以不同的值调用不同的方法
if (classes.equals("null")) {//注意这里的比较方式,其他方式是错误的。
query.setInfo();
} else {
query.setInfo(classes);
}
} catch (Exception e) {
e.printStackTrace();
}
ArrayList data = new ArrayList();
data = query.getData();
ArrayList colData = new ArrayList();
colData = query.getColData();
try{
OutputStream os=response.getOutputStream();
//OutputStream os = response.getOutputStream();
WritableFont wf = new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false);
WritableCellFormat wcfF = new WritableCellFormat(wf);
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet("my first excel", 0);
// Label labelC = new Label(0,0,"姓名",wcfF);
for(int i=0;i<colData.size();i++){
Label labelc=new Label(i,0,(String) colData.get(i),wcfF);
ws.addCell(labelc);
}
for(int i=1;i<=data.size();i++){
ArrayList list = new ArrayList();
list=(ArrayList) data.get(i-1);
for(int j=0;j<list.size();j++){
Label label=new Label(j,i,(String) list.get(j),wcfF);
ws.addCell(label);
}
}
wwb.write();
wwb.close();
os.close();
}
catch(Exception e){
//e.printStackTrace();
}
}
/**
* 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 {
doGet(request,response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}
- 1
- 2
前往页