`
xiaoheliushuiya
  • 浏览: 402250 次
文章分类
社区版块
存档分类
最新评论

JXL 工具包

 
阅读更多

JXL 工具包

读文件(jxl包)

写文件(Jxl.write包)

说明

Workbook

WritableWorkbook

操作Excel文档的工作薄

Sheet

WritableSheet

操作Excel文档的工作表

Cell

WritableCell

操作Excel文档的单元格

Image

WritableImage

操作Excel文档的图像

Hyperlink

WritableHtperlink

操作Excel文档的超链接

JxlAPI我们主要用的就3个包(jxl, jxl.write,jxl.format) ,jxl能支持对 Excel 文档的读,写,删除,修改的操作,对java更好的支持,而且不依赖于windows操作系统,我们都知道excel 文档分为工作薄,工作表,以及单元格组成,下面我们来理解一下jxl 中的各个

类及对excel文档的操作。

单元格(此处指文本单元格,图像及链接和单元格做为一个层次)分为好多种,所以在API的设计中将Cell作为一个接口而存在.

对应的jxl中的结构为:

读文件(包jxl)

写文件(包jxl.write)

说明

Cell

WritableCell

单元格

BooleanCell

Boolean

布尔值单元格

DateCell

DateTime

时间单元格

ErrorCell

形式错误的单元格

LabelCell

Label

文本单元格

NumberCell

Number

数字单元格

FormualCedll

Formual

公式单元格

Blank

空格单元格

BooleanFormualCell

布尔公式单元格

DateFormualCell

时间公式单元格

ErrorFormualCell

错误公式单元格

StringFormualCell

文本公式单元格

NumberFormualCell

数字公式单元格

虽然数据是电子表格的核心,但是同时其也需要一些辅助类 比如文件格式设置,工作表设置与显示效果.单元格设置与显示效果等.按照其层次,则依次有以下接口或类.

读文件(包jxl)

写文件(包jxl.write)

说明

WorkbookSettings

WorkbookSettings(包jxl)

设置workbook

属性的bean

SheetSettings

SheetSettings(包jxl)

设置具体sheet的属性的bean(比如表头表底等)

HeaderFooter

HeaderFooter(包jxl)

表示表头表底类

HeaderFooter.Contents

HeaderFooter.Contents(包jxl)

具体表头表底设置

CellFeatures

WritableCellFeautres

表格内容相关设置(验证)

CellReferenceHelper

得到引用单元格相关属性

CellType

表格相关类型

CellView

CellView(包jxl)

表格视图相关设置

CellFormat

WritableCellFormat

表格显示样式设置

BoldStyle

边框枚举

DateFormat

时间格式

DateFormats

时间格式枚举

NumbreFormat

数据格式

NumbreFormats

数字模式枚举

WritableFont

字体设置

WriteableFont.Fontname

静态字体内部类

下面还有一个jxl.format包,里面主要是有关一些字体的设置及样式的设置的一些接口和类。

以上是我们了解的jxl的API 及里面的常用类的一个说明 下面我们具体的来讲以下怎么用jxl包来操作excel文档,毕竟只说不做有点不太好吧。

读取Excel文档中的数据

上面说了,读取文档中的数据主要用到Workbook,sheet,cell 3个类,下面有一段代码:

publicvoid readExcel(File file){

try {

Workbook book = Workbook.getWorkbook(file);//获取Workbook的实例

Sheet sheet = book.getSheet(0);//获取sheet的实例

int columns = sheet.getColumns();//获取工作表的列数

int rows = sheet.getRows();//获取工作表的行数

Cell cell = null;

String word = null;

for (int i = 0; i < rows; i++) {

for (int j = 0; j < columns; j++) {

cell = sheet.getCell(j,i);//获取某行某列单元格

word = cell.getContents();//获取单元格中的内容

if (cell.getType() == CellType.LABEL) {//判断单元格中的数据类型

LabelCell lc= (LabelCell)cell;

word = lc.getString();//获取数据的字符串形式

System.out.println(word);//输出

}

}

}

book.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (BiffException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

1.Workbook类

Workbook,工作簿类,它是一个抽象类,所以不能通过new来获取实例, 只能通过 Workbook的静态方法getWorkbook()来获取他的实例,他的实例是new它的子类WorkbookParser来实现的,WorkbookParser在jxl.read.biff中。它继承了java.lang包中的Object类,其中有几个方法是经常用的:

a.staticWritableWorkbook CreateWorkbook(File file); 它可以通过文件名来获取一个可写的 WritableWorkbook 实例。

b.abstractSheet getSheet(int index); 它可以通过下标来获取该文档的工作表,下表从0开始,它的子类WorkbookParser 复写了一个方法。

c.staticWorkbook getWorkbook(File file);这是一个工厂方法,通过他返回的是一个Workbook的子类WorkbookParser的一个实例,这是多态的一种表现。

2.Sheet接口
Sheet接口 工作表类,它是通过WorkbookParser的getSheet()方法来获取它的子类 SheetImpl 的实例,SheetImpl也在jxl.read.biff中。其中就几个常用的方法。

a.Cell getCell(int column,introw);它通过列标,行标来获取本工作表的某个单元格。

b.int getColumns(); 获取此工作表的列数。

c.int getRows(); 获取此工作表的行数。

3.Cell接口单元格类,可以通过他获取单元格中的数据类型。

a.CellType getType();获取这个单元格的数据类型,然后和LabelCell进行类型比较,强转成LabelCell,通过getString() 方法获取其中类容。

写入Excel文档数据

下面先看以下代码:

publicvoid writeExcel(File file){

WritableWorkbook book = null;

WritableSheet stu_sheet = null;

try {

book = Workbook.createWorkbook(file);

stu_sheet = book.createSheet("学生",0);

Label label = null;

label = new Label(0,0,"编号");

stu_sheet.addCell(label);

label = new Label(1,0,"姓名");

stu_sheet.addCell(label);

label = new Label(2,0,"性别");

stu_sheet.addCell(label);

label = new Label(3,0,"年龄");

stu_sheet.addCell(label);

book.write();

book.close();

} catch (RowsExceededException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (WriteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

要往xls文件里面写入数据的时候需要注意的是第一要新建一个xls文件

OutputStream os=newFileOutputStream("c:\\excel2.xls");

再建完这个文件的时候再建立工作文件

jxl.write.WritableWorkbook wwb =Workbook.createWorkbook(new File(os));

如果这个文件已经存在,那么我们可以在这个文件里面加入一个sheet为了和以前的数据进行分开;

jxl.write.WritableSheet ws =wwb.createSheet("Test Sheet 1", 0);

在createSheet方法里前面的参数是sheet名,后面是要操作的sheet号写入文件要用到下面几个类。

1.WirtableWorkbook

a.void close ();关闭;

b.WritableSheet getSheet (int index);返回第index个可写工作表;

c. WritableSheet moveSheet (int fromIndex, int toIndex);把fromIndex的工作表移动到toIndex处.

d.void removeSheet (int index);删除这个工作表;

e.void write ();代表已写完;

2.WirtableSheet

  1. void addCell(WritableCellcell); 添加单元格到本表。
  2. WritableCell getWritableCell(intcolumn, introw); 获取本表的某个可写的单元格。
  3. void removeRow(introw);删除某行
  4. void removeColumn(intcol);删除某列

3.Label

  1. void setString(java.lang.Strings)设置Label中的内容。

修改Excel文档数据

Jxl在修改excel文件时使用的方法比较怪,也可以说jxl不支持修改excel文件。它的处理方式是每次打开旧excel文件,然后创建一个该excel文件的可写的副本,所有的修改都是在这个副本上做的。下面是一个例子。

publicvoid updateExcel(File file){

WritableWorkbook book = null;

Workbook book1 = null;

try {

book1 = Workbook.getWorkbook(file);

book = Workbook.createWorkbook(file,book1);

WritableSheet sheet = book.getSheet(0);

WritableCell cell = sheet.getWritableCell(0,0);

if (cell.getType() == CellType.LABEL) {

Label label = (Label) cell;

label.setString("学号");

System.out.println("修改成功");

}

book.write();

book.close();

}catch (IndexOutOfBoundsException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (WriteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (BiffException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

删除Excel文档数据

publicvoid deleteExcel(File file){

WritableWorkbook book =null;

try {

book = Workbook.createWorkbook(file);

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

sheet.removeRow(0);

book.write();

book.close();

System.out.println("删除成功!");

} catch (IndexOutOfBoundsException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (WriteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

填充数据

(1)添加的字体样式
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18,WritableFont.BOLD, true);
WritableFont()方法里参数说明:
这个方法算是一个容器,可以放进去好多属性
第一个: TIMES是字体大小,他写的是18
第二个: BOLD是判断是否为斜体,选择true时为斜体
第三个: ARIAL
第四个: UnderlineStyle.NO_UNDERLINE 下划线
第五个: jxl.format.Colour.RED 字体颜色是红色的

jxl.write.WritableCellFormat wcfF = newjxl.write.WritableCellFormat(wf);

jxl.write.Label labelC = newjxl.write.Label(0, 0, "This is a Label cell",wcfF);
ws.addCell(labelC);
在Label()方法里面有三个参数
第一个是代表列数,
第二是代表行数,
第三个代表要写入的内容
第四个是可选项,是输入这个label里面的样式
然后通过写sheet的方法addCell()把内容写进sheet里面。

(2)添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");

(3)添加Number对象
(3.1)显示number对象数据的格式

jxl.write.NumberFormat nf = newjxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);

jxl.write.Number labelNF = newjxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);
Number()方法参数说明:
前两上表示输入的位置
第三个表示输入的内容

(4)添加Boolean对象
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
ws.addCell(labelB);

(5)添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, newjava.util.Date());
ws.addCell(labelDT);
DateTime()方法的参数说明
前两个表示输入的位置
第三个表示输入的当前时间

(6)添加带有formatting的DateFormat对象
这个显示当前时间的所有信息,包括年月日小时分秒
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyyhh:mm:ss");
jxl.write.WritableCellFormat wcfDF = newjxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, newjava.util.Date(), wcfDF);
ws.addCell(labelDTF);

(7)添加带有字体颜色Formatting的对象
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10,WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);

import="jxl.format.*
jxl.write.WritableFont wfc = newjxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);

(8)设置单元格样式

jxl.write.WritableCellFormat wcfFC = newjxl.write.WritableCellFormat(wfc);
wcfFC.setBackGround(jxl.format.Colour.RED);//设置单元格的颜色为红色
wcfFC = new jxl.write.Label(6,0,"i love china",wcfFC);


分享到:
评论

相关推荐

    java利用jxl工具包操作Excel文件.doc

    java利用jxl工具包操作Excel文件.doc

    java利用jxl工具包操作Excel文件.pdf

    基于微信小程序设计校园浴室预约系统.docx基于微信小程序设计校园浴室预约系统.docx基于微信小程序设计校园浴室预约系统.docx基于微信小程序设计校园浴室预约系统.docx基于微信小程序设计校园浴室预约系统.docx基于...

    Jxl工具包--Java后台导出Excel表格插件

    用于前端传递table值到Java后台,进行导出Excel表格操作

    JXL工具jar包

    1、通过java操作excel表格的工具类库 2、支持Excel 95-2000的所有版本 3、生成Excel 2000标准格式 4、支持字体、数字、日期操作 5、能够修饰单元格属性 6、支持图像和图表

    jxl jar包 操作EXCEL的工具类

    jxl是java操作Excel的一个工具类,同样的工具类还有apache的poi,这个工具类我没用过,用了jxl就够了,jxl在进行数据量较大的工作中性能较强于poi,但是在样式上逊色于poi

    Excel2003导出工具包jxl.jar

    Excel2003导出工具jxl.jar包,版本虽有点老,但还能用。

    解析EXCEL 工具 JXL JAR包

    解析EXCEL的常用工具类--JXL,包括源码和JAR包,以及描述文件

    jxl.jar包(2.6).zip

    jxl.jar是通过java操作excel表格的工具类库,开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的。

    jxl工具 demo

    使用jxl工具,实现excel表格数据导入到数据库中

    javajxl.zip

    jxl工具包 java eclipse插件

    操作excel表格的jxl包

    包含通过java操作excel表格的工具类库jxl.jar,方便使用。

    jxl包,解决Excel

    jxl是java关于Excel的一个工具类,同样的工具类还有apache的poi,jxl在进行数据量较大的工作中性能较强于poi,但是在样式上逊色于poi,数据量小的时候,推荐使用

    java jxl的jar包 官方下载版

     jxl.jar是一个java操纵excel的jar包,使用性很高,导入即可使用,在很多项目里非常实用,可处理excel文件,jxl.jar操作简单,使用方便。

    JXL jar包(附API)

    JXL 处理excel的开源工具 这是2.4.3版本---用jdk1.4运行 如果自行下载,注意:2.6的版本需要jdk1.6运行

    jxl,创建xls的工具

    jxl的包,创建xls的工具jxl的包,创建xls的工具jxl的包,创建xls的工具jxl的包,创建xls的工具jxl的包,创建xls的工具

    java jxl包.rar

    该jar包是Java操作excel的工具 该jar包是Java操作excel的工具 该jar包是Java操作excel的工具 该jar包是Java操作excel的工具 该jar包是Java操作excel的工具

    jxl.jar包(java导入导出Excel文件)

    通过java来操作Excel表格的工具类库。 支持字体、数字、日期操作,能够修饰单元格属性,能支持图像和图表,可以正确的处理Excel文件。 附使用方法。

    jxl实现excel的读取和写入 jar包

    jxl实现excel的读取和写入 jar包,jxl实现excel的读取和写入 jar包

    jxl解析Excel的jar包和源文件包(两个)

    jxl是一款小而强大的解析Excel 的第三方工具包,内含jar包和源文件包(两个),xl-2.6.12.jar,jxl-2.6.12_src.jar,非常有用的

    Java读写Excel文件,JXL框架工具类

    问题:目前,无论是JXL还是POI,对Excel的操作都是比较原始的,用户无法使用这些框架代码直接读取Excle并相应相应的数据实体(Entity),也无法直接将数据实体写入到Excle文件中去。 本文章要介绍的是一个对JXL框架...

Global site tag (gtag.js) - Google Analytics