jxl 初步使用

 

import java.io.*;

import jxl.*;

import jxl.write.*;

 

public class ControlExcel {

 public void creatExcel(){

  try {

//新建了一个文件,保存在默认根目录了

   WritableWorkbook book = Workbook.createWorkbook(new File(

     "wenben.xls"));

//创建两个sheet

   WritableSheet sheet = book.createSheet("page1",0);

   WritableSheet sheet2 = book.createSheet("page2",0);

   Label label = new Label(0, 0, "test");

   sheet.addCell(label);

    sheet.addCell(new Label(0,1,"AA"));

     sheet.addCell(new Label(1,1,"VV"));

     sheet.addCell(new Label(1,2,"vv"));

     sheet.addCell(new Label(2,1,"CC"));

     sheet.addCell(new Label(3,1,"asd"));

     sheet.addCell(new Label(4,1,"asd"));

     sheet.addCell(new Label(5,1,"asd")); 

     sheet2.addCell(new Label(0,1,"null"));

     sheet2.addCell(new Label(0,2,"add"));

     sheet2.addCell(new Label(1,1,"niyou"));

 

   jxl.write.Number number = new jxl.write.Number(1, 0, 789.123);

//说明,添加数字记录,使用Number是规范的

   sheet.addCell(number);

   book.write();

   book.close();

  } catch (Exception e) {

   System.out.println(e);

  }

 }

 

 public String readExcel(fileName) {

  String xx = "";

//没有使用xx,暂时没有使用该方法

  try {

   Workbook book = Workbook.getWorkbook(new File("fileName"));

   // 获得第一个工作表对象

   Sheet sheet = book.getSheet(0);

   // 得到第一列第一行的单元格

   Cell cell1 = sheet.getCell(0, 0);

   String result = cell1.getContents();

   System.out.println(result);

   book.close();

  } catch (Exception e) {

   System.out.println(e);

  }

  return xx;

 }

 

 public String updatexls(fileName) {

//xx暂时没有使用

  String xx="";

  try {

   // excel获得文件

   Workbook wb = Workbook.getWorkbook(new File("fileName"));

 

   // 打开一个文件的副本,并且指定数据写回到原文件

   WritableWorkbook book = Workbook.createWorkbook(

     new File("test.xls"), wb);

 

   // 添加一个工作表

   WritableSheet sheet = book.createSheet("page2", 1);

 

   sheet.addCell(new Label(0, 0, "page2data"));

 

   book.write();

   book.close();

  } catch (Exception e) {

   System.out.println(e);

  }

  return xx;

 }

}

以上这个类目前提供excel的创建,读取和修改需要完善其方法,

至于更高级的一些方法,我将方法列于下面:

一、   数据格式化    

   

  excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。    

   

  1   字串格式化    

   

  字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由writablefontwritablecellformat类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,为方便叙述,我们为每一行命令加了编号:    

   

   

  writablefont   font1=    

  new   writablefont(writablefont.times,16,writablefont.bold);       

   

  writablecellformat   format1=new   writablecellformat(font1);       

   

  label   label=new   label(0,0,”data   4   test”,format1)       

   

  其中指定了字串格式:字体为times,字号16,加粗显示。writablefont有非常丰富的构造子,供不同情况下使用,jexcelapijava-doc中有详细列表,这里不再列出。    

   

  处代码使用了writablecellformat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。    

   

  处使用了label类的构造子,指定了字串被赋予那种格式。    

   

  writablecellformat类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们上面的实例,可以指定:    

   

  //把水平对齐方式指定为居中    

  format1.setalignment(jxl.format.alignment.centre);    

   

  //把垂直对齐方式指定为居中    

  format1.setverticalalignment(jxl.format.verticalalignment.centre);    

   

  二、单元格操作    

   

  excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jexcelapi提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的api    

   

  1   合并单元格    

   

  writablesheet.mergecells(int   m,int   n,int   p,int   q);    

   

  作用是从(m,n)(p,q)的单元格全部合并,比如:    

  writablesheet   sheet=book.createsheet(“第一页”,0);    

   

  //合并第一列第一行到第六列第一行的所有单元格    

  sheet.mergecells(0,0,5,0);    

   

  合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。    

   

  2   行高和列宽    

   

  writablesheet.setrowview(int   i,int   height);    

   

  作用是指定第i+1行的高度,比如:    

   

  //将第一行的高度设为200    

  sheet.setrowview(0,200);    

   

  writablesheet.setcolumnview(int   i,int   width);    

   

  作用是指定第i+1列的宽度,比如:    

   

  //将第一列的宽度设为30    

  sheet.setcolumnview(0,30); 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值