`

JXL解析excel

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

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

名称        
Workbook
Sheet
Cell



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官文网站:http://www.andykhan.com/jexcelapi/index.html



分享到:
评论

相关推荐

    使用jxl解析excel(.xls)固定模板(智联简历为例)

    本教程将深入讲解如何使用JXL库解析Excel中的固定模板,以智联招聘的简历模板为例进行说明。 首先,确保你的项目已经引入了JXL库。在这个例子中,我们看到一个名为`jxl-2.6.8.jar`的文件,这正是JXL库的jar包。将此...

    jxl解析excel

    本篇文章将详细介绍如何利用jxl库来解析Excel。 一、jxl库介绍 jxl库是由Waqas Bhatti开发的,它提供了Java API,使得开发者能够方便地与Excel文件进行交互。jxl库支持读取和写入Excel文件中的工作表、单元格、公式...

    jxl解析EXCEl2003

    在Java编程环境中,处理Excel文件...通过学习和实践使用JXL解析Excel文件,你不仅可以提升Java编程能力,还能在数据处理领域拓展自己的技能树。无论是数据导入、报表生成还是自动化测试,这都将是一个非常实用的工具。

    浅谈jxl解析excel —————复制、修改excel表

    本文将围绕“浅谈jxl解析excel ——复制、修改excel表”这一主题,深入探讨JXL库的使用方法和关键知识点。 首先,JXL库提供了丰富的API,使得开发人员可以方便地操作Excel文件的各个部分,如工作表、单元格、样式等...

    jxl解析Excel包

    在这个场景中,我们主要关注如何使用JXL库来解析Excel文件。首先,我们需要确保已经将JXL库引入到我们的项目中,这里提供的"jxl.jar"就是这个库的实现。 JXL库的使用步骤大致如下: 1. **导入依赖**:在Java项目中...

    jxl JAVA Excel解析

    下面我们将深入探讨JXL库在Java Excel解析中的应用。 ### 1. JXL库介绍 JXL(Java Excel API)是一个开源的Java库,专门用于处理Microsoft Excel文件。它支持多种操作,如创建新的工作簿、读取现有工作簿、修改工作...

    poi,jxl解析excel

    下面将详细阐述这两个库在解析Excel时的应用及其相关知识点。 1. **Apache POI**: - **简介**:Apache POI 是一个开源项目,它允许Java开发者创建、修改和显示Microsoft Office文件,特别是Excel。POI支持老版本...

    jxl解析excel1

    本文将介绍如何使用Java中的jxl库来操作Excel文件,包括创建、读取和格式化Excel数据。jxl是一个纯Java实现的库,适用于Windows、Linux等操作系统,对中文支持良好,不过其对图形和图表的支持相对有限。 1. **jxl库...

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

    jxl是一款专为Java开发者设计的轻量级库,用于读取、写入和修改Microsoft Excel格式的文件。这个库在Java社区中被广泛使用,尤其适用于那些需要处理Excel数据但不希望依赖于Microsoft Office的项目。jxl库不仅提供了...

    excel 解析,jxl 实现,通用

    JXL是一个开源库,专门设计用来读写Excel文件(.xls格式),使得在Java环境中解析Excel数据变得简单易行。 首先,让我们深入了解JXL库的基本用法。JXL支持多种操作,包括读取、创建、修改和写入Excel文件。以下是...

    JXL操作EXCEL的各个类的解析.doc

    JXL 操作 EXCEL 的各个类的解析 JXL 操作 EXCEL 的各个类的解析是 Java 语言中操作 Excel 文件的主要方法之一。JXL 通过提供了多种类来实现对 Excel 文件的读写操作。 首先,JXL 提供了一个抽象类 Workbook,该类...

    jxl导出excel加水印.zip

    下面我们将分步骤解析如何实现Excel加水印的功能。 首先,我们需要在项目中引入`jxl`库。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>net.sourceforge.jexcelapi</groupId> ...

    jxl.jar原版、修改后的jxl.jar解决web dynpro中乱码问题

    这可能涉及到对jxl库中处理字符串的函数进行调整,以确保在解析Excel数据时,能够正确识别并处理各种字符集。 总结来说,本问题的解决方案是通过深入理解Java jar包的结构和操作,以及Web Dynpro与外部系统交互的...

    用jxl下载excel文件

    ### 使用JXL库下载并处理Excel文件 #### 知识点概述 本文将详细介绍如何使用JXL库结合Java网络编程技术来实现从指定URL下载Excel文件,并将其保存到本地指定目录的功能。此外,我们还将简单介绍如何使用JXL库读取...

    jxl模版生成excel

    "jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...

    使用jxl操作Excel

    在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库是一个广泛使用的开源库,专门用于读取和写入Microsoft Excel文件。本篇将详细介绍如何使用`jxl`库进行Excel的操作,包括导入、导出、读取以及更新Excel...

    利用jxl实现excel解析

    本主题聚焦于"利用jxl实现excel解析",这是一项关键的技能,特别是在Java开发环境中。 jxl是一个流行的开源Java库,它允许开发者方便地读取、写入和修改Excel文件。jxl支持多种版本的Excel格式,包括97-2003的.BOOK...

    JXL操作EXCEL的各个类的解析

    Excel的生成方式其实很简单,主要包括几个大的类,首先最重要的几个类就是WritableWorkbook,这个类代表的就是一个Excel文档,使用过Excel文档的都应该知道Excel文档的组成,都是由一个一个的sheet组成的,那么这个...

    解析excel的方法

    提到解析Excel,JXL是一个经典的Java库,对应压缩包中的"JXL解析Excel.txt"文件。JXL支持读取和写入.xls格式的Excel文件。使用JXL,你可以轻松地访问单元格内容、行列信息,甚至样式和公式。例如,通过`Workbook`、...

    jxl导出excel总结

    《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...

Global site tag (gtag.js) - Google Analytics