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());
}
}