`
evoleht
  • 浏览: 96460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Jxl简析------(二) 应用 (转)

    博客分类:
  • jxl
阅读更多
post by phoenix / 2009-6-3 17:41 Wednesday

 

 

 

(二)应用

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

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

名称

属性

Workbook

WorkbookSettings

Sheet

SheetSettings

Cell

CeLlFormat CellFeatures CellView CellType


Jxlexcel

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

       getWorkbook(File file)

       getWorkbook(File file,WorkSettings ws)

       getWorkbook(InputStream is)

       getWorkbook(InputStream is,WorkSettings ws)

参数有两个:

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

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

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

 代码段: 

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----JAVA操作Excel文档的包

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

    jxl-2.6.12.jar

    jxl-2.6.12.jar,用于读取和写入Excel文件, JExcelApi is a java library which provides the ability to read, write, and modify Microsoft Excel spreadsheets.

    jxl-2.6.10.jar包

    jxl是用于操作excel的jar包,是2.6.10版本的jar包,可以方便使用importSheet函数 第一次上传资源,希望可以对大家有用,多多支持

    jxl-report,freemarker-util,freemarker,jxl

    Java使用Excel模板导出所需的jar:freemarker-2.3.19.jar 、freemarker-util-0.0.1.jar 、jxl-2.6.10.jar 、jxl-report-1.0.jar

    jxl-2.6.12.jar 操作excle

    jxl-2.6.12.jar

    jxl包-用于java读取excel表格

    Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。除了Jxl之外,还有Apache的一个POI项目,也可以操作Excel,两者相比之下:Jxl使用方便,但功能相对POI比较弱。POI使用复杂,...

    jxl技术-excel操作公共类

    jxl相关介绍及基础用法已在前边介绍过了,现在我们为了使开发更加便捷,封装了一些常用的方法。 详细请仔细研读以下代码:

    jxl-2.6.3.jar

    jxl-2.6.3.jar工具包,用于读取xls文件。

    jxl api-java操作Excel

    用于java操作操作Excel的api 很好的

    jxl-1.7.1.jar

    jxl下载

    jxl-2.6.6-sources.jar.zip

    Download jxl-2.6.6-sources.jar : jxl « j « Jar File Download 对于有需要使用jxl进行java读写excel文件的朋友,可以试下导入jxl.jar,强烈推荐,希望能够帮助到有需要的朋友。

    jxl-2.6.jar

    jxl.jar是通过java操作excel表格的工具 类库支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键...

    jxl-2.6.12包 源码 及 javadoc

    jxl二进制包 源码包 及 javadoc

    jxl-2.6.jar包和常用方法例子

    jxl-2.6.jar包和常用方法例子 Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel...

    MSP430F415+LCD JXL-5956+SGM3005指夹式血氧仪ALTIUM硬件原理图+PCB工程文件.zip

    MSP430F415+LCD JXL-5956+SGM3005指夹式血氧仪ALTIUM硬件原理图+PCB工程文件,硬件采用4层板设计,大小为48*24mm,包括AD09设计为完整原理图PCB文件,可供学习及设计参考。硬件板主要器件如下: LCD JXL-5956-W LCD ...

    jxl导入导出

    jxl导入导出jar包和实例简单粗暴,包你看的懂,学得会

    jxl-2.6.10.jar.zip

    jxl导出excel

    jxl-report.jar 和 freemarker-util-0.0.1.jar

    jxl模板报表导出所需的jar包,使用该jar包可以直接在excel文档中写freemarker表达式

    jxl包-JAVA轻松处理EXCEL导入及导出

    jxl是JAVA针对EXCEL的一个开发包,功能强大,简单易用,可以EXCEL导入导出简单实现,导出还可对单元格进行处理,如合并单元格,背景色,字体等等

Global site tag (gtag.js) - Google Analytics