`
liukai
  • 浏览: 702149 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

导出excel

    博客分类:
  • java
阅读更多
package geekcom.lionsgdadmin.survey.action;

import geekcom.lionsgdadmin.survey.manager.ISurveyManager;
import geekcom.lionsgdadmin.survey.model.Survey_type;
import geekcom.lionsgdadmin.survey.model.formbean.Survey_typeFormbean;

import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;

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 org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class IsExcel extends SimpleFormController {

	private ISurveyManager manager;

	public ISurveyManager getManager() {
		return manager;
	}

	public void setManager(ISurveyManager manager) {
		this.manager = manager;
	}

	@Override
	protected ModelAndView onSubmit(HttpServletRequest request,
			HttpServletResponse response, Object command, BindException errors)
			throws Exception {
		Survey_typeFormbean form = (Survey_typeFormbean) command;
		String name = form.getName().trim();
		int toPage = request.getParameter("toPage").equals("") ? 1 : Integer
				.parseInt(request.getParameter("toPage"));
		int pageSize = 10;
               //查询出来的结果 ,即需要导出的数据
		List<Survey_type> list = manager.getSurvey_type(toPage, pageSize, name);
 
		StringBuffer sbFileName = new StringBuffer();
		sbFileName.append("问卷类型维护报表.xls");
		String fileName = "";
		
		/*
		 * 浏览器不同 可能会造成导出的excel文件名出现乱码,解决方案是判断浏览器
		 * 然后根据不同的浏览器返回不同的编码格式.
		 */
		if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {
			fileName = new String(sbFileName.toString().getBytes("utf-8"),
					"iso-8859-1");
		} else {
			fileName = URLEncoder.encode(sbFileName.toString(), "UTF-8");

		}
		response.reset();
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/x-excel");
		response.setHeader("Content-Disposition", "attachment; filename="
				+ fileName);

		OutputStream os = response.getOutputStream();
		exportToExcel(list, os);
		return null;
	}

	@Override
	protected Object formBackingObject(HttpServletRequest request)
			throws Exception {
		return new Survey_typeFormbean();
	}

	@SuppressWarnings( { "unused", "unchecked" })
	private static void exportToExcel(List list, OutputStream os)
			throws Exception {
		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, "创建时间"));
		for (int i = 0, n = list.size(); i < n; i++) {
			Survey_type info = (Survey_type) list.get(i);

			Label name = new Label(0, i + 1, info.getName());
			sheet1.addCell(name);

			Label create_oper = new Label(1, i + 1, info.getCreate_oper());
			sheet1.addCell(create_oper);

			Label create_time = new Label(2, i + 1, info.getCreate_time());
			sheet1.addCell(create_time);

		}
		workbook.write();
		workbook.close();
	}

}
  • jxl.jar (597.4 KB)
  • 描述: jxl.jar为导出excel必备的jar包
  • 下载次数: 51
分享到:
评论
1 楼 1柳梦狂1 2010-10-16  
最近在做一个DRP项目遇到了很多问题,
因为刚出来工作很多东西以前根本没有接触过,
但没人会理你这些,反正安排了就得完成,
所以天天上网找资料问人,做了很多无用功。
在这里衷心的感谢楼主,你的无私帮我解决了
好多难。谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics