JXL入门介绍

最近由于工作需要,也要整报表。 为什么中国人那么喜欢报表呢? 搞不明白!

     下面是对JXL一点介绍。

Java代码

  1. package com.xinli;   
  2. import java.io.FileOutputStream;   
  3. import java.io.OutputStream;   
  4. import java.text.SimpleDateFormat;   
  5. import java.util.ArrayList;   
  6. import java.util.Date;   
  7. import java.util.List;   
  8.   
  9. import jxl.*;   
  10. import jxl.format.Alignment;   
  11. import jxl.format.Border;   
  12. import jxl.format.BorderLineStyle;   
  13. import jxl.format.CellFormat;   
  14. import jxl.write.Boolean;   
  15. import jxl.write.Label;   
  16. import jxl.write.Number;   
  17. import jxl.write.WritableCellFormat;   
  18. import jxl.write.WritableFont;   
  19. import jxl.write.WritableSheet;   
  20. import jxl.write.WritableWorkbook;   
  21.   
  22. public class JXLExample {   
  23.   
  24.     /**
  25.       *
  26.       * @author smart      *
  27.       */  
  28.     public static void main(String[] args) {   
  29.         // 准备设置excel工作表的标题   
  30.          String[] title = {"编号","产品名称","产品价格","产品数量","生产日期","产地","是否出口"};   
  31.         try {   
  32.             // 获得开始时间   
  33.             long start = System.currentTimeMillis();   
  34.             // 输出的excel的路径   
  35.              String filePath = "c:\\test.xls";   
  36.             // 创建Excel工作薄   
  37.              WritableWorkbook wwb;   
  38.             // 新建立一个jxl文件,即在C盘下生成test.xls   
  39.              OutputStream os = new FileOutputStream(filePath);   
  40.              wwb=Workbook.createWorkbook(os);   
  41.             // 添加第一个工作表并设置第一个Sheet的名字   
  42.              WritableSheet sheet = wwb.createSheet("产品清单"0);   
  43.              Label label;   
  44.             for(int i=0;i<title.length;i++){   
  45.                 // Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是y   
  46.                 // 在Label对象的子对象中指明单元格的位置和内容   
  47.                  label = new Label(i,0,title[i]);   
  48.                 // 将定义好的单元格添加到工作表中   
  49.                  sheet.addCell(label);   
  50.              }   
  51.             // 下面是填充数据   
  52.             /*
  53.               * 保存数字到单元格,需要使用jxl.write.Number
  54.               * 必须使用其完整路径,否则会出现错误
  55.               * */  
  56.             // 填充产品编号   
  57.             jxl.write.Number number = new jxl.write.Number(0,1,20071001);   
  58.              sheet.addCell(number);   
  59.             // 填充产品名称   
  60.              label = new Label(1,1,"金鸽瓜子");   
  61.              sheet.addCell(label);   
  62.             /*
  63.               * 定义对于显示金额的公共格式
  64.               * jxl会自动实现四舍五入
  65.               * 例如 2.456会被格式化为2.46,2.454会被格式化为2.45
  66.               * */  
  67.             jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");   
  68.             jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);   
  69.             // 填充产品价格   
  70.             jxl.write.Number nb = new jxl.write.Number(2,1,2.45,wcf);   
  71.              sheet.addCell(nb);   
  72.             // 填充产品数量   
  73.             jxl.write.Number numb = new jxl.write.Number(3,1,200);   
  74.              sheet.addCell(numb);   
  75.             /*
  76.               * 定义显示日期的公共格式
  77.               * 如:yyyy-MM-dd hh:mm
  78.               * */  
  79.              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   
  80.              String newdate = sdf.format(new Date());   
  81.             // 填充出产日期   
  82.              label = new Label(4,1,newdate);   
  83.              sheet.addCell(label);   
  84.             // 填充产地   
  85.              label = new Label(5,1,"陕西西安");   
  86.              sheet.addCell(label);   
  87.             /*
  88.               * 显示布尔值
  89.               * */  
  90.             jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true);   
  91.              sheet.addCell(bool);   
  92.             /*
  93.               * 合并单元格
  94.               * 通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的
  95.               * 表示将从第x+1列,y+1行到m+1列,n+1行合并
  96.               *
  97.               * */  
  98.              sheet.mergeCells(0,3,2,3);   
  99.              label = new Label(0,3,"合并了三个单元格");   
  100.              sheet.addCell(label);   
  101.             /*
  102.               *
  103.               * 定义公共字体格式
  104.               * 通过获取一个字体的样式来作为模板
  105.               * 首先通过web.getSheet(0)获得第一个sheet
  106.               * 然后取得第一个sheet的第二列,第一行也就是"产品名称"的字体
  107.               * */  
  108.              CellFormat cf = wwb.getSheet(0).getCell(10).getCellFormat();   
  109.              WritableCellFormat wc = new WritableCellFormat();   
  110.             // 设置居中   
  111.              wc.setAlignment(Alignment.CENTRE);   
  112.             // 设置边框线   
  113.              wc.setBorder(Border.ALL, BorderLineStyle.THIN);   
  114.             // 设置单元格的背景颜色   
  115.              wc.setBackground(jxl.format.Colour.RED);   
  116.              label = new Label(1,5,"字体",wc);   
  117.              sheet.addCell(label);   
  118.   
  119.             // 设置字体   
  120.             jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("隶书"),20);   
  121.              WritableCellFormat font = new WritableCellFormat(wfont);   
  122.              label = new Label(2,6,"隶书",font);   
  123.              sheet.addCell(label);   
  124.                
  125.             // 写入数据   
  126.              wwb.write();   
  127.             // 关闭文件   
  128.              wwb.close();   
  129.             long end = System.currentTimeMillis();   
  130.              System.out.println("----完成该操作共用的时间是:"+(end-start)/1000);   
  131.          } catch (Exception e) {   
  132.              System.out.println("---出现异常---");   
  133.              e.printStackTrace();   
  134.          }   
  135.      }   
  136.   
  137. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值