package dev.trade.excel;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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;
/**
*
* <p>Title: 网优分析系统</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: NewLand</p>
*
* @author yaoxj
* @version 1.0 2008-6-30
*/
public class ExcelTest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
this.DownLoad(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
public void DownLoad(HttpServletRequest request, HttpServletResponse response) throws IOException{
List<Product> list=new ArrayList<Product>();
list.add(new Product(12001, "潘兴ii", 23, "注意检修"));
list.add(new Product(12002, "彼得大帝", 43, "挺好"));
list.add(new Product(12003, "土星五号", 84, "一个大个子"));
list.add(new Product(12004, "豆腐干", 34, "味咸"));
list.add(new Product(12005, "夜莺", 53, "太黑了"));
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
java.util.Date now=new Date(System.currentTimeMillis());
StringBuffer sb=new StringBuffer();
sb.append(sdf.format(now)).append("的库存商品.xls");
String fileName=URLEncoder.encode(sb.toString(), "utf-8");
response.reset();
response.setCharacterEncoding("utf-8");
response.setContentType("application/x-excel");//使文件默认为Excel,对应下面"另存为"图中的保存类型
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
exportToExcel(list,response.getOutputStream());
}
private void exportToExcel(List<Product> list, OutputStream os) {
try {
WritableWorkbook workbook = Workbook.createWorkbook(os);
WritableSheet sheet1 = workbook.createSheet("报表", 0);
//添加表头
sheet1.addCell(new Label(0,0,"商品编号"));
sheet1.addCell(new Label(1,0,"商品名称"));
sheet1.addCell(new Label(2,0,"库存数量"));
sheet1.addCell(new Label(3,0,"备注说明"));
//将商品结果集添加到报表
for (int i = 0, n = list.size(); i < n; i++){
Product product = (Product)list.get(i);
Label id = new Label(0, i+1, String.valueOf(product.getId()));
sheet1.addCell(id);
Label name = new Label(1, i+1, product.getName());
sheet1.addCell(name);
Label number = new Label(2, i+1, String.valueOf(product.getNumber()));
sheet1.addCell(number);
Label remark = new Label(3, i+1, product.getRemark());
sheet1.addCell(remark);
} workbook.write();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}