java将数据导出为Excle

java将数据导出为Excle

public class GenerateExcelServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public GenerateExcelServlet() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
	        IOException {

		response.setContentType("text/html;charset=utf-8");
		String data = request.getParameter("data");
		data = new String(data.getBytes("iso8859-1"), "UTF-8"); 
		ObjectMapper om = new ObjectMapper();
		String[][] matrix = om.readValue(data, String[][].class);
		HSSFWorkbook workbook = new HSSFWorkbook();
		HSSFSheet sheet = workbook.createSheet();
		for (int i = 0; i < matrix.length; i++) {
			HSSFRow row = sheet.createRow(i);
			for (int j = 0; j < matrix[i].length; j++) {
				HSSFCell cell = row.createCell(j);
				cell.setCellValue(matrix[i][j]);
			}
		}
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		workbook.write(baos);
		baos.flush();
		baos.close();
		response.reset();
		response.addHeader("Content-Disposition", "attachment;filename=" + System.currentTimeMillis() + ".xls");
		response.addHeader("Content-Length", String.valueOf(baos.size()));
		response.setCharacterEncoding("utf-8");
		response.setContentType("application/vnd.ms-excel;charset=utf-8");
		response.getOutputStream().write(baos.toByteArray());
	}

}
posted @ 2018-11-28 19:29  journeyIT  阅读(7)  评论(0)    收藏  举报