在软件开发中,我们经常会遇到将数据输出的事情,输出Excel更是经常用的。在此仅写简单导出Excel的一些代码,其余的根据个人情况适当改写。
导入poi的jar包是必须的。
GZIPOutputStream OutputStream = null; // 创建一个新的Excel HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿 HSSFSheet sheet = workbook.createSheet("test"); // 创建设置样式的对象 HSSFCellStyle cellStyle = workbook.createCellStyle(); // 创建调色板 HSSFPalette palette = workbook.getCustomPalette(); // 设置前景色 palette.setColorAtIndex((short)9, (byte)(182), (byte)(182), (byte)(182)); // 设置字体样式 cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND ); // 设置背景色 cellStyle.setFillForegroundColor((short)9); // 设置对齐方式 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建第一行 HSSFRow row = sheet.createRow(0); // 创建第一行第一列 HSSFCell cell = row.createCell(0); // 第一行第一列设置样式 cell.setCellStyle(cellStyle); // 设置列宽 sheet.setColumnWidth(0, 3000); // 设置值 cell.setCellValue(new HSSFRichTextString("NAME")); cell = row.createCell(1); cell.setCellStyle(cellStyle); sheet.setColumnWidth(1, 5000); cell.setCellValue(new HSSFRichTextString("AGE")); HSSFCellStyle cellStyle2 = workbook.createCellStyle(); cellStyle2.setAlignment(HSSFCellStyle.ALIGN_RIGHT); // 从数据库查出数据循环导入到Excel中,查出数据返回集合list // list封装domain,从domain里取数据 for(int i = 0;i < list.size();i++){ row = sheet.createRow(i+1); cell = row.createCell(0); TestDomain domain = (TestDomain )list.get(i); cell.setCellValue(new HSSFRichTextString(domain.getName()); cell = row.createCell(1); cell.setCellStyle(cellStyle2); cell.setCellValue(new HSSFRichTextString(domain.getAge()); } response.reset(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Encoding", "gzip"); response.addHeader("Content-Disposition", "inline;filename=test.xls"); outputStream = new GZIPOutputStream(response.getOutputStream()); workbook.write(outputStream); outputStream.flush();