(二)应用
在进行实践前,我们需要对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官文网站:http://www.andykhan.com/jexcelapi/index.html
相关推荐
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是该库的一个稳定版本,它包含了处理Excel文件所需的类和方法,使得开发者能够在Java应用程序中轻松地进行数据导入导出。 jxl库的核心功能包括: 1. **读取Excel文件**:jxl提供了一系列的Reader类...
《使用jxl-2.6.12.jar操作Excel:详解与实践》 在Java编程领域,处理Excel数据是一项常见的任务。为此,开发者们通常会借助于特定的库,其中,jxl是一个广泛使用的开源库,它允许Java程序读取、写入以及修改Excel...
在Java编程环境中,处理Excel文件是一项常见的任务,而JXL库正是为此目的设计的。JXL是一个开源的Java库,允许开发者读取、写入和修改Excel文件(.xls格式)。这个“jxl技术-excel操作公共类”是基于JXL库的一个封装...
这个例子创建了一个新的Excel文件,添加了一个名为"Sheet1"的工作表,并在第一行第一列写入了文本"姓名",第二列写入了数字25.99。 总之,JXL库为Java开发者提供了一种简单、高效的方式来处理Excel文件,无论是读取...
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-report.jar"和"freemarker-util-0.0.1.jar"是两个重要的Java库,它们在处理报表生成特别是Excel文件时起着关键作用。这两个库允许开发者利用Java编程语言来创建和操作Excel文档,并且能够嵌入...
在实际应用中,使用jxl-1.7.1.jar时,开发者需要按照以下步骤操作: 1. **引入依赖**:将jxl-1.7.1.jar添加到项目的类路径中,这通常是通过构建工具如Maven或Gradle完成的。 2. **创建Workbook对象**:使用`...
《jxl-2.6.3.jar:Java处理Excel文件的得力助手》 在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、报表生成还是数据导入导出,都需要与Excel进行交互。jxl库作为Java处理Excel的利器,为我们...
本文将详细介绍jxl-2.6.12包中的三个关键部分:jxl-2.6.12.jar(二进制包)、jxl-2.6.12-javadoc.jar(Javadoc文档)和jxl-2.6.12-sources.jar(源码包),帮助开发者更好地理解和运用jxl库。 首先,jxl-2.6.12.jar...
本篇文章将深入探讨JXL API的使用,包括它的核心概念、功能以及如何在实际项目中应用。 **JXL API简介** JXL(Java Excel API)是Java平台上的一个轻量级库,专门设计用来处理Microsoft Excel文件。它支持多种Excel...
在压缩包"jxl-2.6.12.zip"中,包含了一个重要的组件——"jxl-2.6.12.jar",这是JXL库的主程序包,包含了所有的类和方法,可供开发者在项目中引用。另一个文件"说明.txt"可能是库的使用指南或API文档,它将提供详细的...
Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。除了Jxl之外,还有Apache的一个POI项目,也可以操作Excel,两者相比之下:Jxl使用方便,但功能相对POI比较弱。POI使用复杂,...
本文将详细讲解如何利用jxl-2.6.10.jar这个库进行Excel的导出操作,并探讨其相关知识点。 一、jxl库介绍 jxl是Java Excel API的简称,它是一个开源项目,专为Java设计,用于读取和写入Microsoft Excel格式的文件。...
标题“jxl导入导出”涉及的是Java编程中使用JExcelAPI(通常简称为jxl)库进行Excel文件处理的相关技术。JExcelAPI是一个开源的Java库,它允许开发人员读取、写入和修改Excel文件。这个库特别适合那些需要在Java应用...
标题中的"jxl-2.6.6-sources.jar.zip"是一个包含Java源代码的压缩文件,主要用于Java编程。这个文件是JExcelApi库的2.6.6版本的源码,JExcelApi是一个用于读写Microsoft Excel文件的开源Java库。通过这个库,开发者...
标题中的"jxl-2.6.12.jar.rar"是一个包含Java库jxl的压缩文件,版本号为2.6.12。jxl是一个广泛使用的开源库,专门用于处理Microsoft Excel文件,包括读取和写入Excel数据。这个库在Java开发中特别有用,因为它允许...
jxl.jar是通过java操作excel表格的工具 类库支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键...