一.创建工作薄
XSSFWorkbook wb= new XSSFWorkbook();

 二.创建sheet页(如果需要同时导出多个sheet也内容,则如下)XSSFSheet sheet1 = createSheet(wb, "数据层");XSSFSheet sheet2 = createSheet(wb, "播放层");2.1      创建createSheet() 作用:设置sheet页标题,文本内容格式等等public XSSFSheet createSheet(XSSFWorkbook wb,String sheetName){wb.createSheet(sheetName);//设置sheet页文本居中sheet.setHorizontallyCenter(true);//是否设置自适应界面(有的内容会挤到一张纸上)sheet.setFitToPage(false);//导出excel,打开excel后会自动执行公式sheet.setForceFormulaRecalculation(true);//设置打印方式XSSFPrintSetup ps = sheet.getPrintSetup();ps.setLandscape(true); // true:横向打印,false:竖向打印 ,因为列数较多,推荐在打印时横向打印ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); //打印尺寸大小设置为A4纸大小return sheet; }3.// 设置字体的样式XSSFFont    font =  wb.cteateFont();font.setFontName("宋体");//白底黑字font.setColor(IndexedColors.WHITE.getIndex());//通过数据库查询得到一个数据集   listgenExcel(wb,sheet,list);  ( 主要作用:用来定义样式,得到结果)OutputStream os=null;HttpServletResponse response=null;try{response=ServletActionContext.getResponse();os=response.getOutputStream();response.reset();//设置响应流response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");String filename="java"+new date(new SimpleFormat("yyyy-MM-dd"))+"xlsx";filename=URLEncoder.encode(filename,"utf-8");response.setHeader("content-disposition","filename=" + fileName);wb.write(os);catch (Exception e) {
}finally{try {os.flush();os.close();} catch (Exception e2) {}}}
public  void genExcel(XSSFWorkbook workbook, XSSFSheet sheet,List list) {XSSFCellStyle headStyle = haveHeadStyle(workbook); //创建表头样式XSSFCellStyle contextStyle = haveNormalStyle(workbook);//创建文本样式XSSFCellStyle footStyle = haveRemarkStyle(workbook);//创建备注样式XSSFCellStyle pinkStyle = haveExceptionStyle(workbook);//创建异常样式//设置标题位置   合并单元格 new CellRangeAddressCellRangeAddress cra = new CellRangeAddress(list.size() + 1, //first rowlist.size() + 2, //last row0,column_title.length-1);sheet.addMergedRegion(cra);// 使用RegionUtil类为合并后的单元格添加边框    为整个表格添加边框//下边框RegionUtil.setBorderBottom(6, cra, sheet, workbook);//左边框RegionUtil.setBorderLeft(6, cra, sheet, workbook);//上边框RegionUtil.setBorderTop(6, cra, sheet, workbook);//右边框RegionUtil.setBorderRight(6, cra, sheet, workbook);
//循环表头内容到表格中XSSFRow row    =     sheet.createRow(0);XSSFCell cell=null;for(int i=0;i<title.length;i++){cell =  row.createCell(i);cell.setCellValue(new XSSFRichTextString(column_title[i]));cell.setCellStyle(headStyle);}//循环读取数据行for(int i=0;i<list.size();i++){row= sheet.createRow(i+1);Map map= list.get(i);for(int j=0;j<column_value.length;j++){XSSFCell cell1=row.createCell(j);      cell1.setCellValue((String)map.get(column_value[j]));cell1.setCellStyle(contextStyle);}    }//让表格数据小于-10 的标记为红色for(int i=1;i<sheet.getLastRowNum();i++){XSSFRow row1=  sheet.getRow(i);int cells= row1.getPhysicalNumberOfCells();for(int k=0;k<cells.length;k++){String value=  row1.getCell(k).getStringCellValue();try{if(Float.parseFloat(cellValue)<-10 && !"".equals(cellValue) && cellValue != null && !cellValue.equals(null)){row1.getCell(k).setCellStyle(pinkStyle);}else{row1.getCell(k).setCellStyle(contextStyle);}} catch (Exception e){e.printStackTrace();}}}  }//创建表头样式public XSSFCellStyle haveHeadStyle(XSSFWorkbook workbook) {XSSFCellStyle style= workbook.createCellStyle();//设置字体颜色XSSFFont font= workbook.createFont();font.setColor(HSSFColor.WHITE.index);style.setFont(font);style= sheetStyle(style);return style;}private XSSFCellStyle sheetStyle(XSSFCellStyle style){style.setAlignment(HorizontalAlignment.CENTER);//文本水平居中显示style.setVerticalAlignment(VerticalAlignment.CENTER);//文本竖直居中显示style.setWrapText(true);//文本自动换行//生成Excel表单,需要给文本添加边框样式和颜色style.setBorderBottom(BorderStyle.THIN);//设置文本边框style.setBorderLeft(BorderStyle.THIN);style.setBorderRight(BorderStyle.THIN);style.setBorderTop(BorderStyle.THIN);return style;
}
//创建文本样式public XSSFCellStyle haveNormalStyle(XSSFWorkbook workbook) {XSSFCellStyle style = workbook.createCellStyle();style = sheetStyle(style);return style;
}//设置备注样式
public XSSFCellStyle haveRemarkStyle(XSSFWorkbook workbook) {XSSFCellStyle style = workbook.createCellStyle();style = sheetStyle(style);style.setAlignment(HorizontalAlignment.LEFT);//设置标题的边框//标题居中 ,设置标题文字样式XSSFFont titleFont = workbook.createFont();titleFont.setBold(true);//加粗titleFont.setFontHeight((short)10);//文字尺寸titleFont.setFontHeightInPoints((short)10);style.setFont(titleFont);return style;
}
//红色字体的样式
public XSSFCellStyle haveExceptionStyle(XSSFWorkbook workbook) {XSSFCellStyle style = workbook.createCellStyle();style = sheetStyle(style);//设置字体颜色XSSFFont font = workbook.createFont();font.setColor(HSSFColor.RED.index);style.setFont(font);style.setFillBackgroundColor(HSSFColor.ROSE.index);style.setFillForegroundColor(HSSFColor.ROSE.index);style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);style.setFillBackgroundColor(HSSFColor.ROSE.index);return style;
}

Java excel导出支持2007以上版本相关推荐

  1. Java Excel导出复杂excel表格样式之ExcelUtil工具类

    Java Excel导出包括普通导出及复杂表格样式,主要是对于需要进行行列合并的列进行特殊处理,计算清楚起始行,结束行,起始列,结束列. 普通导出可以是所有列,也可以是包含某些列,或者排除某些列: 1 ...

  2. java excel 导出数据文件格式无效

    java excel 导出数据文件格式无效 的原因 WritableWorkbook workbook=Workbook.createWorkbook(new File("h:\\a.xls ...

  3. java excel导出(表头合并,多行表头)

    java excel导出(表头合并,多行表头) 原创:http://www.cnblogs.com/NJM-F/p/10222152.html @RequestMapping(value=" ...

  4. java excel导出2007_java操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

  5. js-xlsx 读取和导出excel实现前端 Excel 导出(支持多 sheet)

    之前写文章介绍了使用 js-xlsx 实现导入 excel 的功能,现在再介绍一下如何使用 js-xlsx 进行 excel 导出. [实现步骤] 1. 首先安装依赖 npm install xlsx ...

  6. java Excel导出功能之 不固定列表格

    背景:考勤周期为本月19号至上月20号,则每个月考勤周期表的列是动态变化的.所有数据显示和excel导出功能都需要动态的进行处理. 显示格式如下图 前端 checkin.jsp<%@ page ...

  7. Java excel导出压缩zip并加密(拿起即用,有用请点赞,不做白嫖怪!)

    文章目录 1.前言 2.开发思路 以下某些类缺少的可以去我上篇文章拿 4.效果 5.结尾了 6.最最后 1.前言 上篇文章我有写了java用poi导出excel加密,但excel加密懂点电脑的都知道怎 ...

  8. java Excel导出工具类

    Excel工具类 一.开发原因 最近工作的时候,正在写关于Excel导出功能,由于当前使用的工具类不太灵活和不易看懂,自己从头写又很浪费时间等原因,我决定自己写一款很简单的Excel导出的工具类,仅仅 ...

  9. java excel导出并下载

    在使用时,直接传递参数并调用该方法即可 import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; impor ...

最新文章

  1. iOS培训教程——设置默认语言
  2. move_uploaded_file()
  3. 【Android游戏开发十八】解放手指,利用传感器开发游戏!
  4. Java黑皮书课后题第4章:*4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1、2、3、4,输出对应结果
  5. 前端wxml取后台js变量值_这些鲜为人知的前端冷知识,你都GET了吗?
  6. protobuf 数据解析的2种方法
  7. perl python ruby_perl,lua,python,ruby的对比(3) -- lambda,closure,proper tail function call
  8. 20165318 预备作业3 Linux安装及学习
  9. mysql 自动当前时间_Mysql 自动获取当前时间
  10. c语言使用三种方法计算圆周率,求用三种方法计算圆周率(C语言)
  11. 省市区三级数据-MySQL
  12. 计算机运行慢提速小技巧,电脑运行慢?这样设置瞬间提速75%!
  13. 诛仙手游 法宝属性道法性价比
  14. 【阅读笔记】Deep Mutual Learning
  15. 《联邦学习介绍》(科研汇报PPT,针对无机器学习基础的同学,浅显理解)
  16. 项目案例:吃货联盟,订餐系统
  17. HTML+CSS+JS实现 ❤️ 立方体旋转图片切换特效❤️
  18. Bootstrap的aria-label和aria-labelledby
  19. Java Script网页特效实例大全
  20. 纽约市街道规划设计与治理启示

热门文章

  1. 企微服务商平台收费接口对接教程
  2. 佛山的车主们,为什么说跑优步比滴滴更赚钱?
  3. 如何设置和取消RAR文件的密码保护
  4. 用手机或电脑连接另一台电脑桌面远程控制的软件TeamViewer
  5. exit和_exit,fock和vfock
  6. html5写手机端页面
  7. Android导航软件设计开发,基于Android平台的手机导航系统的设计与实现
  8. 标梵详解CSS去除浮动的方法
  9. 消息中间件原理及JMS简介之一
  10. marquee相关属性