java生成EXCEL简单(jxl)2

原创 2018年04月16日 11:43:46

单元格合并已经完成,先看下结果:



Java代码:

public class createExcelLa {

    /*
    * exportXLSFile
    *描述: 在这个方法中,生成EXCEL,并填充数据
    * */
    public static void createXLSFile() throws Exception {
        String strFileName = "E:\\wdkFile\\user_test.xls";
        File f = new File(strFileName);
        f.createNewFile();
        WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream(f));//Excel工作薄
        WritableSheet ws = wwb.createSheet("sheet1", 0);//Excel工作表

        ws.setColumnView(0, 30); // 设置列的宽度
        ws.setColumnView(1, 30); // 设置列的宽度
        ws.setColumnView(2, 20); // 设置列的宽度
        ws.setColumnView(3, 30); // 设置列的宽度

        //设置标题的字体
        WritableFont wfc = new WritableFont(
                WritableFont.ARIAL, 10, WritableFont.BOLD, false,
                UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
        jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
                wfc);
        wcfFC.setBackground(jxl.format.Colour.GRAY_25);// 设置单元格的颜色为灰色
        wcfFC.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);//设置边框为黑色
        //设置内容的字体
        WritableFont wfcInfo = new WritableFont(
                WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
                UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
        jxl.write.WritableCellFormat wcfFCInfo = new jxl.write.WritableCellFormat(
                wfcInfo);
        wcfFCInfo.setBackground(jxl.format.Colour.GRAY_25);
        wcfFCInfo.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
        //合并框的字体
        WritableCellFormat wcfFCMerge = new WritableCellFormat(
                wfc);
        wcfFCMerge.setBackground(jxl.format.Colour.GRAY_25);// 设置单元格的颜色为灰色
        wcfFCMerge.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);//设置边框为黑色
        wcfFCMerge.setAlignment(jxl.format.Alignment.CENTRE);
        wcfFCMerge.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
        wcfFCMerge.setWrap(true);

        int allIndex = 0; //行数

        //标题的字体
        Label labelTit =null;
        Label label1 =null;
        Label label2 = null;
        Label label3 =null;
        Label label4 = null;
        //第一行
        labelTit = new Label(0, allIndex, "一级分类",wcfFCMerge);
        ws.addCell(labelTit);
        labelTit = new Label(1, allIndex, "二级分类",wcfFCMerge);
        ws.addCell(labelTit);
        labelTit = new Label(2, allIndex, "",wcfFCMerge);
        ws.addCell(labelTit);
        labelTit = new Label(3, allIndex, "三级分类",wcfFCMerge);
        ws.addCell(labelTit);
        ws.mergeCells(1, 0, 2, 0);//列 行 跨列 跨行
        allIndex++;
        int oneMagStart = allIndex;//一级分类 需要 合并的单元格 开始的行数

        label1 = new Label(0, allIndex, "基本属性",wcfFCMerge);
        ws.addCell(label1);

        label2 = new Label(1, allIndex, "姓名",wcfFCInfo);
        label4 = new Label(3, allIndex,"张三",wcfFCInfo);
        ws.addCell(label2);
        ws.addCell(label4);
        allIndex++;

        label2 = new Label(1, allIndex, "年龄",wcfFCInfo);
        label4 = new Label(3, allIndex,"26",wcfFCInfo);
        ws.addCell(label2);
        ws.addCell(label4);
        allIndex++;

        //联系方式对应手机号和QQ ,所以 联系方式 需作为合并后的单元格
        label2 = new Label(1, allIndex, "联系方式",wcfFCInfo);
        ws.addCell(label2);

        int twoMagStart = allIndex;//二级级分类 需要 合并的单元格 开始的行数
        label3 = new Label(2, allIndex, "手机号",wcfFCInfo);
        label4 = new Label(3, allIndex,"18041028280",wcfFCInfo);
        ws.addCell(label3);
        ws.addCell(label4);
        allIndex++;

        label3 = new Label(2, allIndex, "QQ",wcfFCInfo);
        label4 = new Label(3, allIndex,"64383147",wcfFCInfo);
        ws.addCell(label3);
        ws.addCell(label4);
        int twoMagEnd=allIndex;//二级合并 结束行数
        ws.mergeCells(1, twoMagStart, 1, twoMagEnd);//进行合并
        allIndex++;

        label2 = new Label(1, allIndex, "工领",wcfFCInfo);
        label4 = new Label(3, allIndex,"2年",wcfFCInfo);
        ws.addCell(label2);
        ws.addCell(label4);


        for (int j = oneMagStart;j <= allIndex;j++) {
            if(j<twoMagStart || j>twoMagEnd){
                ws.mergeCells(1, j, 2, j);
            }
        }
        ws.mergeCells(0, oneMagStart, 0, allIndex);//一级分类进行合并
        allIndex++;

        oneMagStart=allIndex;//第二个一级分类
        label1 = new Label(0, allIndex, "收入信息",wcfFCMerge);
        ws.addCell(label1);

        label2 = new Label(1, allIndex, "应发金额",wcfFCInfo);
        label4 = new Label(3, allIndex,"5000元",wcfFCInfo);
        ws.addCell(label2);
        ws.addCell(label4);
        allIndex++;

        label2 = new Label(1, allIndex, "五险一金",wcfFCInfo);
        label4 = new Label(3, allIndex,"1000元",wcfFCInfo);
        ws.addCell(label2);
        ws.addCell(label4);
        allIndex++;

        label2 = new Label(1, allIndex, "实发金额",wcfFCInfo);
        label4 = new Label(3, allIndex,"4000元",wcfFCInfo);
        ws.addCell(label2);
        ws.addCell(label4);

        for (int j = oneMagStart;j <= allIndex;j++) {
                ws.mergeCells(1, j, 2, j);
        }
        ws.mergeCells(0, oneMagStart, 0, allIndex);//一级分类进行合并

        wwb.write();
        wwb.close();
    }
    public static void main(String args[]) throws Exception {
        createXLSFile();
    }
}

下拉单元格,插入图像,后续我会用到了再发

另外给大家推荐一个EXCEL开发文档,很详细,值得学习

http://www.cr173.com/html/10377_1.html


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35463719/article/details/79958491

jxl创建Excel文件java代码示例

记得要下载 并 导入 jxl.jar 包,免积分下载地址:http://download.csdn.net/detail/u010011052/7561041   package Test; imp...
  • u010011052
  • u010011052
  • 2014-07-01 10:19:21
  • 2428

java如何生成excel报表--jxl.jar操作

文章参考:http://www.cnblogs.com/mingforyou/archive/2013/08/26/3282922.html JAVA EXCEL API:是一开放源码项目,通过它...
  • qingfengmuzhu1993
  • qingfengmuzhu1993
  • 2017-02-25 11:38:31
  • 1161

jxl实现Excel文件的生成与下载

Servlet.java代码: public void toExcel(HttpServletObject obj)         throws ServletException, IOExcept...
  • July_Star
  • July_Star
  • 2016-12-04 16:19:24
  • 1110

Java生成excel 和读取word文档的内容 jxl 代码

  • 2009年03月03日 09:48
  • 643KB
  • 下载

java利用jxl生成excel文件

  • 2017年06月28日 14:59
  • 565KB
  • 下载

jxl操作合并单元格复杂表头

后台操作: @RequestMapping("/export") public void export(HttpServletRequest resquest,HttpServletRespon...
  • cai7095576
  • cai7095576
  • 2014-09-11 21:29:14
  • 2296

Jxl在线实时生成Excel文件流供下载

思路:将项目中需要下载xls文件的部分在一个action中实现,设定好生成的excel的格式,然后从dao层获取到数据写入到book中,然后将表输入到输入流供客户端下载。 注意配好配置文件里的bea...
  • baby_soga
  • baby_soga
  • 2014-03-24 15:43:35
  • 1436

java中使用jxl导入导出excel实例及其在spring mvc中的应用

一、初始jxl 在java中开发Excel的常用开源工具主要有两个,一个是jxl(即Java Excel API),另一个是POI。 1.jxl特征: 支持Excel 95‐2000...
  • qq_16313365
  • qq_16313365
  • 2016-05-13 11:07:56
  • 3907

java通过jxl生成excel(包括图片)

代码如下: package com.mdcl.bgctv.fileManage.action; import java.io.File; import jxl.Workbook; import j...
  • wugouzi
  • wugouzi
  • 2013-10-22 17:54:30
  • 10443

Java基于jxl与模板导出excel并弹出下载

操作Excel文件的开源工具有很多,用得比较多的就是POI与JXL,网上这方面的资料也很多,一般的导出操作需要涉及很多的单元格操作,比较繁琐。所以通过模板的方式先定好布局,那么就免去不少麻烦,我们只需...
  • zsj65776529
  • zsj65776529
  • 2016-05-22 18:29:02
  • 4464
收藏助手
不良信息举报
您举报文章:java生成EXCEL简单(jxl)2
举报原因:
原因补充:

(最多只允许输入30个字)