`
Franciswmf
  • 浏览: 800483 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

jxl操作excel --API

 
阅读更多
jxl操作excel
一、API系列

       Jxl的API主要有三个包,jxl,jxl.format,jxl.write.如果单独的分析API,可能对于更明确的了解此API没有太多的帮助,我们还是从Excel文件的层次来剥离此API吧.

一个excel文件由一个工作簿组成,一个工作簿又由n个工作表组成.每个工作表又由多个单元格组成.对应于Jxl中的结构为

读文件(包jxl)
写文件(包jxl.write)
说明

Workbook 
WritableWorkbook
工作簿

Sheet
WritableSheet
工作表

Cell/Image/Hyperlink
WritableCell/WritableImage//WritableHyperlink
单元格/图像/超链接


        单元格(此处指文本单元格,图像及链接和单元格做为一个层次)分为好多种,所以在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
 
数字公式单元格


而有的时候,我们可能将几个单元格作为一个整体来处理,在API中对应的则是:

    jxl.Range

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

读文件(包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包.此包主要是一些与具体样式有关的接口和枚举.不进行具体描述.第一部分完.

(二)应用

       在进行实践前,我们需要对excel有一个大致的了解,excel文件由一个工作簿(Workbook)组成,工作簿由工作表(sheet)组成,每个工作表又由很多单元格(cell)组成. 工作簿有自己的特征,同样工作表,单元格也一样.从大局上了解了excel文件,对于我们更好的使用jxl是有一定的帮助的.具体请查看(一)API

在jxl中其大概的层次是这样的

名称
属性

Workbook
WorkbookSettings

Sheet
SheetSettings

Cell
CeLlFormat CellFeatures CellView CellType



Jxl读excel:

得到工作簿的方法主要有四个:

       getWorkbook(File file)

       getWorkbook(File file,WorkSettings ws)

       getWorkbook(InputStream is)

       getWorkbook(InputStream is,WorkSettings ws)

参数有两个:

第一个参数是必须的:文件或输入流,

第二个参数:工作簿ws是作为读出来的excel的一些约定,如地区,编码等.

如果文件错误或格式错误,将会抛出BiffException或IOException.

代码段:

Workbook wb=null;

try

{

wb = Workbook.getWorkbook(excelFile);

wb.close();

}

catch(BiffException ex){

       //转换错误

}catch(IOException ex){

       //IO错误

}

以上如果一切正常的话,将得到此excel文件的工作簿.接下来我们就可以通过此文件簿得到其他的东西了.以下是得到工作表有关的方法

int getNumberOfSheets()//工作表个数

Sheet getSheet(String  name);//得到此对应名称的工作表

Sheet getSheet(int index);//得到此序列号的工作表

Sheet[] getSheets();//得到工作表数组

String[] getSheetNames();//得到工作表名称数组

示例代码如下:

Sheet sheet;

if(wb.getNumberOfSheets()>0)

{

       sheet = wb.getSheet(0);

}

以下的方法除非特别目的,否则用到的地方不多.

Range[] finaName(String name);//得到此名称的表格区

Cell findCellByName(String name);//得到此名称的Cell

Cell getCell(String loc)

String[] getRangeNames();

与文件是否可写有关的

boolean isProected();

得到了工作簿文件的某个工作表时.

对于工作表而言其主要的内容就是单元格了.

//根据内容查看

Cell findCell(Pattern pattern,int firstCol,int firstRow,int lastCol,int lastRow,Boolean reverse)

Cell findCell(String content)

Cell findCell(String content,omt forstCol,int firstRow,int lastCol,int lastRow,Boolean reverse)

LabelCell findLabelCell(String contents)

//根据位置得到

Cell getCell(int col,int row)

Cell getCell(String loc)//loc的格式为A3/B1/C3其相同于

getCell(CellReferenceHelper.getColumn(loc0,CellReferenceHelper.getRow(loc)),所以相对而言其性能没有Cell getCell(int col,int row)快

//单元格数组

Cell[] getRows(int row)//当前行单元格数组

Cell[] getCols(int col)//当前列单元格数组

//特殊单元格数组

//超链接表格

Hyperlink[] getHyperlinks();//超链接数组

//区域表格

Range[] getMergedCells();//区域单元格数组

//图像表格

Int getNumberOfImages()//拥有图片数

Image getDrawing(int index)//对应序号的图片

//工作表或多个表格一些自我属性

String getName()//工作表名

int getRows()//行数

int getCols()//列数

SheetSettings getSettings()//工作表设置

CellView getColumnView(int col)//此列的表格视图

CellView getRowView(int row)//此行的表格视图

以下是与单元格有关的一些操作:

CellFeatures getCellFeatures()//主要是与表格内容有关的一些性质如验证等

CellFormat getCellFormat()//主要是表格外在表现格式有关的一些性质.

int getColumn()//所在列

int getRow()//所在行

String getContents();//内容

boolean  isHidden();//可见否

CellType getType();//表格类型 如果不确定表格如果转换则可以使用此方法来确定表格类型.

以下我们讲述如何写excel文件.

写文件分为两种情况 一种是新建一种则是更新.

新建excel文件

新建excel文件很简单:

//文件

WritableWorkbook createWorkbook(File file) //无形式的创建一个excel文件

WritableWorkbook createWorkbook(File file Workbook in)

//以in一样的格式创建一个excel文件,其初始内容与in文件相同(更新文件可以用到此方法)

WriteableWorkbook createWorkbook(File file,WorkSetting ws)//以ws的设定创建文件

WritableWorkbook createWorkbook(File file,Workbook in,WorkSetting ws)

//以ws的设定创建一个与in文件相同的文件

//流

WritableWorkbook createWorkbook(OutputStream os)

WritableWorkbook createWorkbook(OutputStream os Workbook in)

WriteableWorkbook createWorkbook(OutputStream os,WorkSetting ws)

WritableWorkbook createWorkbook(OutputStream os,Workbook in,WorkSetting ws)

代码示例:

WritableWorkbook wrb;

WriteableWorkbook wrbin;

try

{

wrb =  Workbook.createWorkbook(targetfile);

wrbin = Workbook.createWorkbook(targetfile,wb);

}

catch (IOexception e)

{

//IO错误

}

当创建好工作簿时,我们就需要新建工作表了

WritableSheet createSheet(String name,int index);

WritableSheet wrs  = wrb.createSheet(“demo”,0);

//创建一个名为demo的工作表,其为工作簿的第一个工作表.

接下来我们就可以进行其他操作了

添加文本类单元格:

Label label = new Label(0,0,””);

wrb.addCell(label);

//添加数据单元格

Number number = new Number(0,3,1234);

wrb.addCell(number);

//添加时间单元格

DateTime dt = new DateTime(0,4,new Date());

Wrb.addCell(dt);

//添加公式单元格

Fornual formual = new Formual(0,11,”Sum(A1:A9)”);

wrb.addCell(formual);

添加超链接类单元格

WirtableHyperlink wrlink =

new WritableHyperlink(0,1,0,1,new URL(“www.emlog.net/fei”),”emlog”);

wrb.addHyperlink(wrlink);

//添加图像

WritableImage wrimage=new WritableImage(1,5,10,10,new File(imageFilepath));

wrb.addImage(wrimage);

//注意,API中注明只支持png文件,然而我用其他格式的图片,通过将其后缘改为png也能放到excel文件中.果然,在查看其具体源代码时,发现作者只是检测了文件的后缀名,如果不对 给出警告,并没有从图像文件的具体格式进行检测.

     当然,表格中的数据算是表格的核心部分,但是同时API也提供了大量的其他方法来丰富表格的显示.在此,大家具体在使用过程中进行运用就行.

//最后,写完表格后,不要忘记进行写操作,也就是常说的保存

wrb.write()

wrb.close();保存完后关闭相应资源是一个合格的程序员应该做的.

接下来,我们就来讲述写文件的另一方面:更新文件.有时候,并不仅仅只是需要新写文件,可能需要对已有文件进行更新.这时候我们可以这么来实现.

Workbook wb= Workbook.getWorkbook(modifyFile);

WritableWorkbook wrb = Workbook.createWorkbook(modifyFile, wb);

以上就实现了得到一个已存在的文件的可修改副本.

//得到第一个工作表

WritableSheet wrs = wrb.getSheet(0);

//得到A0单元格

Cell cell = Wrs.getCell(0,0);

//对单元格格式进行判断

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

       Label label=(Label) cell;

       label.setString(“u r modified.”);

}//modify end

//save excel

wrb.write();

wb.close();

wrb.close();

以上就简单的完成了一次excel文件的修改.API中还提供了复制工作表,复制单元格等操作,大家可以通过查询API来了解其具体的用法.我们可以从作者提供的包中得到很多关于如何使用API的示例.
分享到:
评论

相关推荐

    jxl api-java操作Excel

    JXL API是一个流行的开源库,它允许Java开发者方便地读取、写入和修改Excel文件。本篇文章将深入探讨JXL API的使用,包括它的核心概念、功能以及如何在实际项目中应用。 **JXL API简介** JXL(Java Excel API)是...

    jxl的API-Excel文件操作.pdf

    Java Excel API,简称jxl,是一个开源项目,它允许Java开发者方便地操作Excel文件,无论是读取、创建还是更新Excel内容。在Web应用程序中,尤其是JSP和Servlet中,jxl API提供了处理Excel数据的强大功能,使得在非...

    JXL----JAVA操作Excel文档的包

    JXL库,全称为Java Excel API,是专门为Java开发者设计的一个轻量级库,用于读取、写入和修改Excel文件。这个库的出现使得Java程序员无需依赖Microsoft Office套件,即可方便地操作Excel文档,极大地扩展了Java在...

    jxl的API ->Excel文件操作

    本篇将详细介绍jxl库的API以及如何进行Excel文件的操作。 jxl库提供了一系列的类和接口,用于读写Excel文件的不同部分,包括工作表(Worksheet)、单元格(Cell)、行(Row)等。下面我们将逐步解析这些概念及其...

    Excel-Jxl-master_Androidexcel_androidexceljxl_android_

    2. **JXL库**:JXL是一个开源的Java Excel API,能够读取、写入和修改Excel文件(.xls格式)。它支持多种操作,如创建新的工作簿、添加工作表、设置单元格格式、公式计算等。 3. **文件I/O操作**:Android应用需要...

    使用jxl操作Excel

    本篇将详细介绍如何使用`jxl`库进行Excel的操作,包括导入、导出、读取以及更新Excel内容。 首先,让我们了解一下`jxl`库。`jxl`是Java Excel API的缩写,它提供了一个方便的接口,允许开发者以编程方式处理Excel...

    JXL操作excel设置字体颜色设置单元格详解

    JXL是一个韩国人写的Java操作Excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的,并不依赖Windows...

    jxl导出excel加水印.zip

    `jxl`库提供了一套完整的API来操作Excel文件,包括创建新的工作簿、添加工作表、设置单元格格式等。下面我们将分步骤解析如何实现Excel加水印的功能。 首先,我们需要在项目中引入`jxl`库。如果你使用Maven,可以在...

    jxl api说明文档

    JXL API是Java开发者处理Excel文件的理想选择,它支持多种操作,包括创建新的工作簿、读取现有工作簿、修改工作表、添加公式、设置格式等。JXL不仅能够处理XLS文件,还能处理Biff8文件格式,这是Excel 97到2003版本...

    jxl操作excel实例,jxl jar包下载

    本文将详细介绍如何使用`jxl`库进行Excel操作,并提供一个简单的实例。 首先,`jxl.jar`是`jxl`库的主要组件,你需要将其添加到你的项目类路径中。这可以通过将`jxl.jar`放在`lib`目录下或在IDE(如Eclipse、...

    jxl操作excel文件

    ### jxl操作Excel文件知识点详解 #### 一、jxl简介 jxl 是一款用于 Java 环境下的 Excel 操作库,由一位韩国开发者所编写。与 Apache POI 相比,jxl 的功能略显简单,但在中文支持方面表现出色。jxl API 不依赖于...

    java 中使用jxl API 操作Excel文档

    Java中的JXL库是一个流行的API,它允许开发者方便地读取、写入和修改Microsoft Excel文件。这个压缩包提供了一系列的实例源码,展示了如何在Java应用程序中利用JXL进行Excel文档的操作。以下是对这些实例及其涉及的...

    java使用jxl打印excel报表文件

    在Java开发中,生成和处理Excel文件是一项常见的任务,特别是在数据导出或报表生成的场景。JXL库是一个广泛使用的Java库,它允许开发者读取...尽管JXL有一些限制,但其简单易用的API使得它成为小型项目的一个不错选择。

    jxl技术-excel操作公共类

    这个“jxl技术-excel操作公共类”是基于JXL库的一个封装,目的是简化Excel操作,提供更方便的API来实现常见的功能。 JXL库的核心概念包括工作簿(Workbook)、工作表(Worksheet)、行(Row)和单元格(Cell)。...

    jxl操作Excel简单

    - `jxl的API`:强调了JXL库提供的API接口,是进行Excel操作的关键。 综上所述,JXL库为Java开发者提供了一个强大且易用的工具,用于处理Excel文件。通过熟练掌握其API,你可以轻松地创建、读取、修改Excel文件,...

    jxl 操作excel Demo

    jxl提供了丰富的API,可以创建工作簿、工作表、行、列以及单元格,并对它们进行各种操作,如设置样式、公式等。 2. **创建Excel文件** 使用jxl,你可以从头开始创建一个新的Excel工作簿。首先,需要创建一个`...

    jxl操作excel文件例子

    描述中提到的“通过jxl操作excel,简单方便”,暗示了JXL库的一个关键优点——简洁易用的API,使得对Excel文件的操作变得相当直观。 JXL库支持多种Excel文件操作,包括但不限于: 1. **读取Excel文件**:你可以使用...

    Java操作Excel之理解JXL-读取Excel.docx

    JXL是一个Java API,专为处理Microsoft Excel文件设计,支持在任何Java兼容的操作系统上运行。以下是详细的解析: 1. **JXL库介绍** - JXL是一个开源的Java库,用于读写Excel文件。 - 官方主页:...

    关于jxl操作excel说明以及jxl.jar包下载2.6

    JXL是Java Excel API的简称,它提供了一套完整的API,可以创建、修改和读取Excel文件。这个库支持多种Excel特性,包括单元格格式、公式、图表、图像等。Jxl.jar文件包含了JXL库的所有类和方法,将其添加到Java项目的...

    jxl-API帮助文档

    总结起来,《jxl API帮助文档》是一份全面的参考资料,它涵盖了jxl库的所有主要功能,是开发涉及Excel操作的Java程序的重要工具。尽管语言障碍可能带来一定的挑战,但通过深入阅读和实践,开发者可以充分利用jxl库的...

Global site tag (gtag.js) - Google Analytics