Demo

import java.io.*;
import jxl.*;
import jxl.format.UnderlineStyle;
import jxl.write.*;
public class CreateXLS { public static void main(String args[]) { try { //打开文件WritableWorkbook book= Workbook.createWorkbook(new File("测试.xls")); //生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet sheetOne=book.createSheet("第一页",0); /*** 定义单元格样式*/WritableFont wf_title = new WritableFont(WritableFont.ARIAL, 11,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK); // 定义格式 字体 下划线 斜体 粗体 颜色WritableFont wf_head = new WritableFont(WritableFont.ARIAL, 11,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK); // 定义格式 字体 下划线 斜体 粗体 颜色WritableFont wf_table = new WritableFont(WritableFont.ARIAL, 11,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK); // 定义格式 字体 下划线 斜体 粗体 颜色WritableCellFormat wcf_title = new WritableCellFormat(wf_title); // 单元格定义wcf_title.setBackground(jxl.format.Colour.WHITE); // 设置单元格的背景颜色wcf_title.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式wcf_title.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); //设置边框WritableCellFormat wcf_title1 = new WritableCellFormat(wf_title); // 单元格定义wcf_title1.setBackground(jxl.format.Colour.LIGHT_GREEN); // 设置单元格的背景颜色wcf_title1.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式wcf_title1.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); //设置边框WritableCellFormat wcf_title2 = new WritableCellFormat(wf_title); // 单元格定义wcf_title2.setBackground(jxl.format.Colour.YELLOW2); // 设置单元格的背景颜色wcf_title2.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式wcf_title2.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); //设置边框WritableCellFormat wcf_head1 = new WritableCellFormat(wf_head); wcf_head1.setBackground(jxl.format.Colour.LIGHT_GREEN);wcf_head1.setAlignment(jxl.format.Alignment.CENTRE); wcf_head1.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); WritableCellFormat wcf_head2 = new WritableCellFormat(wf_head); wcf_head2.setBackground(jxl.format.Colour.YELLOW2);wcf_head2.setAlignment(jxl.format.Alignment.CENTRE); wcf_head2.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); WritableCellFormat wcf_table1 = new WritableCellFormat(wf_table); wcf_table1.setBackground(jxl.format.Colour.LIGHT_GREEN); wcf_table1.setAlignment(jxl.format.Alignment.CENTRE); wcf_table1.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); WritableCellFormat wcf_table2 = new WritableCellFormat(wf_table); wcf_table2.setBackground(jxl.format.Colour.YELLOW2); wcf_table2.setAlignment(jxl.format.Alignment.CENTRE); wcf_table2.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK); sheetOne.setColumnView(0, 15); // 设置列的宽度sheetOne.setColumnView(1, 15); // 设置列的宽度sheetOne.setColumnView(2, 15); // 设置列的宽度sheetOne.setColumnView(3, 15); // 设置列的宽度sheetOne.setColumnView(4, 15); // 设置列的宽度sheetOne.setColumnView(5, 15); // 设置列的宽度sheetOne.setColumnView(6, 15); // 设置列的宽度sheetOne.setColumnView(7, 15); // 设置列的宽度sheetOne.setColumnView(8, 15); // 设置列的宽度sheetOne.setColumnView(9, 15); // 设置列的宽度sheetOne.setColumnView(10, 15); // 设置列的宽度sheetOne.setColumnView(11, 15); // 设置列的宽度sheetOne.setColumnView(12, 15); // 设置列的宽度sheetOne.setColumnView(13, 15); // 设置列的宽度//在Label对象的构造子中指名单元格位置是第一列第一行(0,0) //以及单元格内容为test Label title=new Label(0,0,"统计",wcf_title);Label titleOne=new Label(0,1,"统计1",wcf_title1);Label titleTwo=new Label(2,1,"统计2",wcf_title2);Label column1=new Label(0,2,"姓名",wcf_head1);Label column2=new Label(1,2,"所选课程",wcf_head1);Label column3=new Label(2,2,"姓名",wcf_head2);Label column4=new Label(3,2,"所选课程",wcf_head2);//或者WritableCell cell =  new jxl.write.Number(column, row, value, wcf)//将定义好的单元格添加到工作表中 sheetOne.addCell(title); sheetOne.addCell(titleOne); sheetOne.addCell(titleTwo); sheetOne.addCell(column1); sheetOne.addCell(column2); sheetOne.addCell(column3); sheetOne.addCell(column4); //合: 第1列第1行  到 第13列第1行sheetOne.mergeCells(0, 0, 3, 0); sheetOne.mergeCells(0, 1, 1, 1); sheetOne.mergeCells(2, 1, 3, 1); /*动态数据   */Label content1=new Label(0,3,"张三",wcf_table1);Label content2=new Label(0,4,"张三",wcf_table1);Label content3=new Label(0,5,"张三",wcf_table1);Label kecheg1=new Label(1,3,"语文",wcf_table1);Label kecheg2=new Label(1,4,"数学",wcf_table1);Label kecheg3=new Label(1,5,"英语",wcf_table1);sheetOne.addCell(content1);sheetOne.addCell(content2);sheetOne.addCell(content3);sheetOne.addCell(kecheg1);sheetOne.addCell(kecheg2);sheetOne.addCell(kecheg3);sheetOne.mergeCells(0, 3, 0, 2+3); Label content11=new Label(2,3,"李四",wcf_table2);Label content22=new Label(2,4,"李四",wcf_table2);Label content33=new Label(2,5,"李四",wcf_table2);Label kecheg11=new Label(3,3,"语文",wcf_table2);Label kecheg22=new Label(3,4,"数学",wcf_table2);Label kecheg33=new Label(3,5,"英语",wcf_table2);sheetOne.addCell(content11);sheetOne.addCell(content22);sheetOne.addCell(content33);sheetOne.addCell(kecheg11);sheetOne.addCell(kecheg22);sheetOne.addCell(kecheg33);sheetOne.mergeCells(2, 3, 2, 2+3); //写入数据并关闭文件 book.write(); book.close(); }catch(Exception e){ System.out.println(e); } }
}

其他代码参考

 public void createZJData(List<CountVO> zjList,WritableSheet sheet) throws RowsExceededException, WriteException {//(为合并做准备)在运阶段有多少个子系统for (int j = 0; j < zjList.size(); j++) {if(zjSonSysList.get(zjList.get(j).getNumber3()) != null){zjSonSysList.get(zjList.get(j).getNumber3()).add(zjList.get(j));}else{List<CountVO> vos = new ArrayList<CountVO>();vos.add(zjList.get(j));zjSonSysList.put(zjList.get(j).getNumber3(), vos);}}//动态生成数据if(zjSonSysList != null && zjSonSysList.size() > 0){for (Iterator iter = zjSonSysList.entrySet().iterator(); iter.hasNext();){Entry entry = (Entry) iter.next();  String key = (String) entry.getKey();List<CountVO> sonSysVO = (List<CountVO>) entry.getValue();for (int t = 0; t < sonSysVO.size(); t++) {Label content1=new Label(7,zjEndNum+t,sonSysVO.get(t).getNumber1(),wcf_table2);Label content2=new Label(8,zjEndNum+t,sonSysVO.get(t).getNumber2(),wcf_table2);Label content3=new Label(9,zjEndNum+t,sonSysVO.get(t).getNumber3(),wcf_table2);Label content4=new Label(10,zjEndNum+t,sonSysVO.get(t).getNumber4(),wcf_table2);Label content5=new Label(11,zjEndNum+t,sonSysVO.get(t).getNumber5(),wcf_table2);Label content6=new Label(12,zjEndNum+t,sonSysVO.get(t).getNumber6(),wcf_table2);Label mk=new Label(13,zjEndNum+t,sonSysVO.get(t).getNumber7(),wcf_table2);sheet.addCell(content1);sheet.addCell(content2);sheet.addCell(content3);sheet.addCell(content4);sheet.addCell(content5);sheet.addCell(content6);sheet.addCell(mk);if(t == (sonSysVO.size() - 1)){zjEndNum = zjEndNum+t+1;}else{zjEndNum = zjEndNum+t;   }}int offer = sonSysVO.size();//合并: 第1列第1行  到 第13列第1行sheet.mergeCells(7, zjEndNum-offer, 7, zjEndNum-1); sheet.mergeCells(8, zjEndNum-offer, 8, zjEndNum-1); sheet.mergeCells(9, zjEndNum-offer, 9, zjEndNum-1); sheet.mergeCells(10, zjEndNum-offer, 10, zjEndNum-1); sheet.mergeCells(11, zjEndNum-offer, 11, zjEndNum-1); sheet.mergeCells(12, zjEndNum-offer, 12, zjEndNum-1);}}//使用完毕后恢复,供下一个类型sheet使用zjEndNum = 3;zjSonSysList.clear();zjList.clear();}

自定义背景色方法getNearestColour("#99cc00")

 public static Colour getNearestColour(String strColor) {  Color cl = Color.decode(strColor);  Colour color = null;  Colour[] colors = Colour.getAllColours();  if ((colors != null) && (colors.length > 0)) {  Colour crtColor = null;  int[] rgb = null;  int diff = 0;  int minDiff = 999;  for (int i = 0; i < colors.length; i++) {  crtColor = colors[i];  rgb = new int[3];  rgb[0] = crtColor.getDefaultRGB().getRed();  rgb[1] = crtColor.getDefaultRGB().getGreen();  rgb[2] = crtColor.getDefaultRGB().getBlue();  diff = Math.abs(rgb[0] - cl.getRed())  + Math.abs(rgb[1] - cl.getGreen())  + Math.abs(rgb[2] - cl.getBlue());  if (diff < minDiff) {  minDiff = diff;  color = crtColor;  }  }  }  if (color == null)  color = Colour.BLACK;  return color;  } 

jxl导出excel(合并单元格)相关推荐

  1. JXL导出EXCEL合并单元格、文字对齐方式 .

    public void createNoLotteryAlarmExcel(String filePath,String fileName,List<NoLotteryAlarm> ala ...

  2. JXL导出EXCEL合并单元格、文字对齐方式

    这次能做出来,主要是感谢各位在网上提供的资料,在此记录 导出的结果是,大家看哈,若有可取之处可继续 代码比较多,大家主要看哈我用红色标注部分即可 --------------------------- ...

  3. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  4. jxl操作excel(合并单元格,设置背景色,字体颜色)

    现在正在做的项目中涉及大量的Excel文件导出导入操作,都是使用Java Excel来操作. Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Exce ...

  5. poi导出Excel合并单元格、设置打印参数页眉页脚等

    由于生成文件不能落地,使用SXSSFWorkBook来对excel的导出工作 生成excel步骤: 1.创建workbook SXSSFWorkbook workbook=new SXSSFWorkb ...

  6. java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示

    用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...

  7. java导出excel合并单元格

    今天是2018最后一天了,废话就不多说了直接上干货吧! 1.java导出excel用到POI所有jar包 ,大家可以直接到下面地址下载点击打开链接 2.导出excel的方法 package org; ...

  8. POI导出EXCEL合并单元格对象嵌套List数据

    导出EXCEL 在实际的开发过程当中,我们会遇到一些比较复杂的导出需求,例如需要导出的实体类中需要嵌套集合对象等,正好最近碰到了所以分享出来,希望对大家有帮助 一.POI是什么 简单的说就是Apach ...

  9. java SXSSF 导出excel 合并单元格,设置打印分页

    官方poi地址: Busy Developers' Guide to HSSF and XSSF Features HSSFWorkbook.XSSFWorkbook.SXSSFWorkbook的区别 ...

  10. java POI导出excel,合并单元格边框消失

    业务是导出一个报表,要求有一个跨多列的表头,肯定要用到合并单元格,但合并后边框消失.网上的一些解决办法是重写合并单元格方法,但弄清楚原因后,其实没必要. 原来是这样的: 合并后就第一个有边框,其余全成 ...

最新文章

  1. 【OpenGL】十七、OpenGL 绘制四边形 ( 绘制 GL_QUAD_STRIP 模式四边形 )
  2. apache起步命令加-k参数和不加的区别
  3. SVN 提交子文件夹问题
  4. 转-测试用例-基本控件
  5. 面向对象的三大特征之一:继承
  6. 卷积神经网络计算题试题_卷积神经网络的计算
  7. 天然气表怎么看多少方_上海考大学难度怎么样?看2019上海高考“成绩分布表”和“本科分数线”就知道了!...
  8. SqlDbx 个人版本使用指定的instant client
  9. android 转场动画 4.4,Android高级UI开发(二十七)Material Design之转场动画(一)
  10. 乐高mindstormsev3_乐高MINDSTORMSEV3软件程序模块开发-2019年精选文档
  11. 神通数据库分页查询sql
  12. 基于支持向量机的图像分类系统(MATLAB GUI界面版)
  13. 揭秘 | 直播美颜不靠脸 靠的是阿里云程序员?
  14. vi编辑器 末尾添加_linux下的VI编辑器使用手册
  15. “红黑树”,我一脸懵逼......
  16. html显示tooltips,提示工具 | Tooltips
  17. tablepc是什么平板电脑_Tablet PC,这是什么意思?
  18. angular8.x + ngx-translate实现国际化
  19. 基于STM32单片机智能花盆控制系统设计(毕业设计资料)
  20. win7桌面上显示html,win7桌面图标不见了怎么办,显示Windows 7桌面图标的方法

热门文章

  1. 阿里巴巴的“双11”高并发秒杀终极版教程(Java语言设计)
  2. Starlink卫星动力学系统仿真建模第一讲
  3. PyQtGraph库的部分踩坑记录
  4. 关于放大器失真的原因你了解多少呢?
  5. Unity3D——主角面朝方向一定区域内对象角度计算
  6. 谷歌浏览器打包扩展程序(记录扩展程序根目录)
  7. python如何画3个相切的圆_使用python绘制4个相切的圆形
  8. Windows实用工具推荐
  9. 解决 multiple definition of
  10. 星星之火-19:手机如何与基站进行时钟同步、时隙同步?