jxl 处理 Excel 样式

jxl 能够操作的 excel 样式:

     1. Workbook的格式设置(代表一个excel文件)

     2. Sheet的格式设置(代表一个表格)

     3. Cell的格式设置(代表一个单元格)

    PS:此jxl API是基于jxl 2.6而来的

   官方API:http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/

 

具体内容:

      1. Workbook的格式,Workbook的格式由WorkbookSettings来设置,比较需要注意的是jxl的格式设置统一使用了有get/set方法的bean来操作,这样做的好处是不仅查看API设置格式变成方便,而且把Workbook的格式分离出来有得于扩展.WorkbookSettingsAPI我试过几个,word 2010下没有一个起作用,也不知道为什么.不过jxl有一套默认的WorkbookSettings设置,一般情况下使用默认的就可以了,有什么特殊需要可以看API,不过API并不是特别详细.使用方式:

    1 WorkbookSettings bookSettings = new WorkbookSettings();
    2 bookSettings.setEncoding("UTF-8");
    3 WritableWorkbook book = Workbook.createWorkbook(new File("E:/testwrite.xls"), bookSettings);

    2.Sheet的格式由SheetSettings来设置,使用方式:

 

    WritableWorkbook book = Workbook.createWorkbook(new File("E:/testwrite.xls"), bookSettings);
    WritableSheet sheet = book.createSheet("sheet1", 0);
    SheetSettings settings = sheet.getSettings(); // sheet格式
    settings.setDefaultColumnWidth(6);// 默认字体是10,所以刚好适应6个字符
    settings.setDefaultRowHeight(400);// 显示是10像素

 

  几个用有的API:

  

a)         setDefaultColumnWidth/setDefaultRowHeight设置单元格默认的宽度与高度,宽度的大小是根据当前的默认字体的大小来设置的,而高度则是适应的,除非    你设置了高度,高度的单位是设置值1/20像素.

PS:所有的格式都是在book.write()才写进excel文件的.因此可以对参数在write之前进行修改.

b)         setHorizontalFreeze/setVerticalFreeze设置列,行的固定,这个是从1开始算起的.

 

c)         setHeader/setFooter设置打印时的页头与页尾的输出内容,SheetSettings里的很多设置都和打印的格式有关.

 

 

  3. Cell的格式设置由WritableCellFormat去设定,Cell有三种类型的格式:文本格式,数字格式和日期格式,与它们相关的格式都在jxl.write.*中可以找到.

 

 

 

 

   几个有用API:

   

a)         文本处理,使用WritableFont类来设置格式,能够设置文本的字体,大小(像素),是否加粗,是否斜体,是否有下划线,颜色,上下标的格式:

            // 文字处理
            WritableFont font = new WritableFont(WritableFont.ARIAL);
            // 设置字体有arial,Times New Roman,Courier New,Tahoma
            font.setBoldStyle(WritableFont.BOLD); // 加粗
            font.setItalic(true); // 斜体
            font.setUnderlineStyle(UnderlineStyle.DOUBLE); // 下划线
            font.setColour(Colour.BLUE_GREY); // 字体颜色
            font.setPointSize(20); // 字体大小
            font.setScriptStyle(ScriptStyle.SUBSCRIPT); // 是否上下标
            WritableCellFormat format = new WritableCellFormat(font);
            Label label = new Label(0, 0, "abcdef", format);
            sheet.addCell(label);

b)         超文本处理,使用WritableHyperlink设置格式,能够设置一定单元格内点击打开网页或者本地文件.

            // 超文本处理
            WritableHyperlink link = new WritableHyperlink(0,4,0,5, new URL("http://www.baidu.com"),"百度");
            sheet.addHyperlink(link);//  打开网页
            
            WritableHyperlink link1 = new WritableHyperlink(0, 6, new File("E:/test.xls"));
            sheet.addHyperlink(link1); //  打开本地excel

c)         数字处理,使用NumberFormat设置数字格式,可以使用自定义的格式,通过使用#号来决定保留的数位,不足#号的长度的不会用0补充,还可以用0符号,这个会进行补充0.

            // 四舍五入,数字处理
            NumberFormat numberFormat = new NumberFormat("0000000.0000");
            WritableCellFormat format1 = new WritableCellFormat(numberFormat);
            Number number = new Number(0, 1, 3234.62, format1);
            sheet.addCell(number);

d)         日期处理,jxl有自带的格式,不过格式自己也会用啦

            // 日期格式处理
            Date time = Calendar.getInstance().getTime();
            DateFormat dateFormat = new DateFormat("yyyy-MM-dd HH:mm:ss");
            WritableCellFormat format2 = new WritableCellFormat(dateFormat);
            DateTime timeCell = new DateTime(0, 2, time, format2);
            sheet.addCell(timeCell);

 

e)         图片处理:

            // 图片处理
            WritableImage writableImage = new WritableImage(10,10,50,50, new File("E:/blue.png"));
            sheet.addImage(writableImage);

PS:记得close book流,清理内存.

            book.write();
            book.close();

 

 

  

转载于:https://www.cnblogs.com/liuzesen/p/3456039.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值