简单例子:
package cn.xd.servlet;
import java.io.IOException;
import java.io.OutputStream;
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 org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import cn.xd.bean.Student;
public class PoiServlet extends HttpServlet {
public voidcreateSheet(List listStudent,OutputStream outputStream){
HSSFWorkbookhssfWorkbook = new HSSFWorkbook();//创建文档对象
HSSFSheethssfSheet = hssfWorkbook.createSheet("new Sheet");
hssfWorkbook.setSheetName(0, "学生信息表");
HSSFRowhssFRow = hssfSheet.createRow((short)0);
hssfSheet.createFreezePane(0, 1);
createCell(hssfWorkbook,hssFRow,(short)0,"学生编号");
createCell(hssfWorkbook,hssFRow,(short)1,"学生姓名");
createCell(hssfWorkbook,hssFRow,(short)2,"学生类型");
createCell(hssfWorkbook,hssFRow,(short)3,"学生电话");
for(inti=1;i
HSSFRowhssfRow2 = hssfSheet.createRow((short)i);//第几行?
createCell(hssfWorkbook,hssfRow2,(short)0,listStudent.get(i-1).getId());
createCell(hssfWorkbook,hssfRow2,(short)1,listStudent.get(i-1).getName());
createCell(hssfWorkbook,hssfRow2,(short)2,listStudent.get(i-1).getType());
createCell(hssfWorkbook,hssfRow2,(short)3,listStudent.get(i-1).getPhone());
}
try {
hssfWorkbook.write(outputStream);
outputStream.flush();
outputStream.close();
System.out.println("success");
} catch(IOException e) {
e.printStackTrace();
}
}
public voidcreateCell(HSSFWorkbook hssfWorkbook,HSSFRow hssFRow,shortcols,String val){
HSSFCellcell= hssFRow.createCell(cols);//设置第几行第几个单元格
cell.setCellValue(val);//把数据放入单元格
HSSFCellStyle cellStyle =hssfWorkbook.createCellStyle();//设置单元格格式
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);//格式自适应
cell.setCellStyle(cellStyle);//把格式放入单元格中
}
@Override
protectedvoid doGet(HttpServletRequest req, HttpServletResponse resp)
throwsServletException, IOException {
ListlistStudent = new ArrayList();
listStudent.add(new Student("1", "lisi",";
listStudent.add(new Student("2", "zhangsan","php工程师","1238473284"));
listStudent.add(new Student("3", "wangwu","前端工程师","732023234"));
listStudent.add(new Student("4", "lisi", "教授","1561139"));
listStudent.add(new Student("5", "lisi","地质专家","15748291139"));
//文件名字
StringfileName = "StudentInfo";
OutputStreamoutputStream = resp.getOutputStream();
//这里面要把输出流内部置空一下
resp.reset();
//设置输出文件头信息
resp.setHeader("Content-disposition","attachement;filename="+fileName+".xls");
createSheet(listStudent,outputStream);
}
@Override
protectedvoid doPost(HttpServletRequest req, HttpServletResponse resp)
throwsServletException, IOException {
doGet(req,resp);
}
}