java 导出 excel

来源:互联网 发布:淘宝有卖烟花棒的吗 编辑:程序博客网 时间:2024/04/30 13:58
  1. import java.io.IOException; 
  2. import java.io.OutputStream;
  3. import java.util.List; 
  4. import java.util.Map; 
  5. import javax.servlet.ServletOutputStream; 
  6. import javax.servlet.http.HttpServletResponse; 
  7. import org.apache.poi.hssf.usermodel.HSSFCell; 
  8. import org.apache.poi.hssf.usermodel.HSSFRichTextString; 
  9. import org.apache.poi.hssf.usermodel.HSSFRow; 
  10. import org.apache.poi.hssf.usermodel.HSSFSheet; 
  11. import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
  12. public class ExcelTool { 
  13. /** * 
  14. * @param filename 保存到客户端的文件名
  15. * @param title 标题行 例:String[]{"名称","地址"}
  16. * @param key   从查询结果List取得的MAP的KEY顺序,需要和title顺序匹配,例:String[]{"name","address"}
  17. * @param values 结果集
  18. * @param httpServletResponse
  19. * @throws IOException
  20. */ 
  21. public staticvoid createN(String filename, String[] title, String[] key,List<Map> values, HttpServletResponse httpServletResponse)throws IOException { 
  22.     String filename2=new String(filename.getBytes(),"iso-8859-1"); 
  23.     ServletOutputStream servletOutputStream=httpServletResponse.getOutputStream(); 
  24.     HSSFWorkbook workbook = null;httpServletResponse.setHeader("Content-disposition","attachment; filename=" + filename2); 
  25.     httpServletResponse.setContentType("application/x-download"); 
  26.     workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.createSheet(); 
  27.     HSSFRow row = null
  28.     HSSFCell cell = null
  29.     row = sheet.createRow((short)0); 
  30.     for (int i =0; title != null && i < title.length; i++) { 
  31.         cell = row.createCell((short) i); 
  32.         cell.setCellType(HSSFCell.CELL_TYPE_STRING); 
  33.         cell.setCellValue(new HSSFRichTextString(title[i])); 
  34.     } 
  35.     Map map = null
  36.     for (int i =0; values != null && i < values.size(); i++) { 
  37.         row = sheet.createRow((short) (i +1)); 
  38.         map = values.get(i);for (int i2 =0; i2 < key.length; i2++) { 
  39.             cell = row.createCell((short) (i2)); 
  40.             cell.setCellType(HSSFCell.CELL_TYPE_STRING); 
  41.             if(map.get(key[i2])==null){     
  42.                 cell.setCellValue(new HSSFRichTextString("")); 
  43.             }else
  44.                 cell.setCellValue(new HSSFRichTextString( map.get(key[i2]).toString())); 
  45.             } 
  46.         } 
  47.     } 
  48.     workbook.write(servletOutputStream);servletOutputStream.flush(); 
  49.     }