- 浏览: 585446 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lihaiming:
受用了,已把定义的版本改为跟本地的一致,不用担心找不到了,现应 ...
Cannot find the declaration of element 'beans' -
Albert_Hawking:
看到这个帖子,解决了我的问题。 我的总结是这样的:由于mave ...
Cannot find the declaration of element 'beans' -
di1984HIT:
学习了啊,哈哈哈~~
win7下安装的sqlserver ,1433端口不通 -
蛋呢823:
我也碰到这个问题,尝试了你这个方法也不行,自己摸索了一天,终于 ...
was缓存导致web.xml更改无效 -
liuxiyangyang:
文章帮了我大忙了,谢谢
Cannot find the declaration of element 'beans'
文章来自网络
(一)API
最近,完成了一个网上报表系统,刚巧用到了一个JAVA操作excel表格的API.闲来无事,就将其大概的总结了一下.现阶段JAVA操作Excel的JAR主要有apache 的POI及jxl.因为现在的eclipse操作excel用的插件为jxl,所以在项目中就使用了jxl.想想两者都差不了太多.此简单系列为两个部分,一是API系列,另一部分则是应用系列.
一、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();
<span l
发表评论
-
使用json-lib进行Java和JSON之间的转换
2013-05-09 09:30 1130http://www.cnblogs.com/mailing ... -
java验证身份证号码及编码规则和提取相应信息
2012-09-21 16:39 1817转自:http://www.cnblogs.com ... -
判断二个RGB颜色相近
2012-08-27 12:04 8983转自:http://blog.sina.com.cn/s ... -
Java中颜色的String和Color对象之间的互相转换
2012-06-27 09:10 2588转自http://blog.csdn.net/signs ... -
字符编码详解——彻底理解掌握编码知识,“乱码”不复存在
2012-06-04 16:07 1441摘自 <http://polaris1119.iteye ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-04-26 15:28 800http://www.iteye.com/magazines/ ... -
POI 汇总、总结帖
2012-01-17 17:21 1958最近工作需求使用POI,使用场景如下: 1、查询数据库获取数 ... -
POI实现插入行
2012-01-17 17:13 15277http://hi.baidu.com/xiangliling ... -
POI操作Excel文档-中级篇
2012-01-17 17:12 1293转自 http://ltc603.iteye.com/blo ... -
POI操作Excel文档-基础篇
2012-01-17 17:09 1101转自:http://ltc603.iteye.com/blog ... -
制作完整的java可执行文件
2012-01-09 10:56 1014转自:http://www.cnblogs.com/Seiya ... -
Step By Step(Java 系列的目录)
2012-01-09 10:10 783转自:http://www.cnblogs.com/steph ... -
引用weblogic10的weblogic.jar
2011-12-27 11:35 2889weblogic10及以后的版本,不能直接使用server/l ... -
SWING 那几刀
2011-12-25 01:29 1972最近想做一些桌面程序,所以把前段时间ITEYE上很多的Swin ... -
遍历Map时抛出java.util.ConcurrentModificationException异常的解决办法
2011-12-22 15:46 3032转自http://hi.baidu.com/notyetfis ... -
Crack JRebel 4.0,无需重启JVM,热部署解决方案
2011-12-02 15:44 1456http://dl.dropbox.com/u/2295134 ... -
log4j详解与实战
2011-11-01 15:45 1178转自:http://www.iteye.com/t ... -
【解惑】深入jar包:从jar包中读取资源文件
2011-07-17 12:36 1175我们常常在代码中读取一些资源文件(比如图片,音乐,文 ... -
sun.misc.BASE64Encoder与sun.misc.BASE64Decoder导入错误
2011-07-14 21:24 12221项目中引用import sun.misc.BASE64Deco ... -
分享高效java开发者必备的资源列表
2011-07-14 09:11 1251分享高效java开发者必备 ...
相关推荐
JXL是一个Java库,用于读写Microsoft Excel文件。在Java开发中,如果你需要处理Excel数据,JXL提供了一个简洁的API,使得在程序中操作Excel表格变得相对简单。下面我们将详细探讨JXL的使用和主要知识点。 **1. JXL...
《深入解析JXL:Java与Excel的不解之缘》 在IT行业中,处理Excel数据是一项常见的任务,无论是数据导入、导出还是分析,都离不开与Excel的交互。JXL库作为一个强大的工具,为Java开发者提供了方便快捷的方式来读取...
Java语言在处理Excel文档时,通常会借助第三方库,其中最为流行的就是jxl库。jxl不仅提供了读取Excel文件的能力,还支持创建和修改Excel文件,极大地简化了开发者的工作。本文将深入探讨jxl库及其API的使用,帮助你...
《JXL API详解》 JXL,全称为Java Excel API,是一个开源的Java库,用于读写Microsoft Excel文件。此API提供了丰富的功能,使得在Java应用程序中处理Excel数据变得非常简便。然而,需要注意的是,本说明文档并不...
《使用Java的jxl库创建并格式化Excel文件详解》 在Java开发中,处理Excel文件是一项常见的任务,尤其在数据导入导出、报表生成等领域。jxl库为Java提供了便利的方式来读写Excel文件,无需Microsoft Office的支持。...
### jxl创建下拉列表知识点解析 #### 一、jxl概述 jxl 是一个用于读写Microsoft Excel 文件的Java库。它支持多种版本的Excel文件格式,包括.xls(Excel 97-2003)等。jxl库允许开发者在Java应用程序中创建、修改和...
**jxlAPI(jxl完整的API)** jxl是一个Java库,用于读写Microsoft Excel文件。这个库在处理Excel数据时提供了丰富的功能,无需依赖于Microsoft Office套件。jxl API使得开发者能够在纯Java环境中创建、修改和读取...
"jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...
《jxl库详解:2.6.10版本在Java中的Excel操作》 在Java编程领域,处理Excel数据是一项常见的任务,而jxl库则为此提供了强大的解决方案。本文将深入探讨jxl-2.6.10.jar包,它是jxl库的一个版本,特别关注其在读写...
`jxl`库是一个广泛使用的第三方库,它允许开发者轻松地读取、写入和修改Excel文件。本篇文章将深入探讨如何利用`jxl.jar`包来实现这一功能。 首先,确保你已经正确地将`jxl.jar`文件添加到你的项目类路径中。这可以...
确保正确导入`jxl`相关的包,如`jxl.write.WritableWorkbook`、`jxl.read.BiffRecord`等。 接下来,让我们看一个简单的读写Excel文件的实例。在这个例子中,我们将创建一个名为`Test.java`的文件,用于演示如何使用...
Java中的JXL库是一个强大的工具,专为处理Excel文件而设计。这个官方下载版的`jxl.jar`包含了处理Excel工作簿、工作表、单元格等所有必要的功能,使得Java开发者能够轻松地读取、写入和修改Excel数据。本文将深入...
标题"关于jxl操作excel说明以及jxl.jar包下载2.6"表明我们将探讨如何使用JXL库以及在哪里获取它的特定版本(2.6)。 首先,让我们深入了解一下JXL库。JXL是Java Excel API的简称,它提供了一套完整的API,可以创建...
**jxl.jar 知识点详解** `jxl.jar` 是一个用于读写 Microsoft Excel 文件的 Java 库,它使得 Java 开发者能够在程序中方便地处理 Excel 数据,而无需依赖于 Microsoft Office 或其他第三方软件。这个库由 JExcelApi...
《深入理解JXL库:从jxl.jar到jxl源码和API》 在Java编程领域,处理Excel数据是一项常见的任务。为此,开发者们通常会使用各种库来简化这一过程,其中JXL就是一个广泛使用的开源库。本文将围绕"jxl.jar和jxl源码及...
**JXL库详解** 标题提及的“JXL - JAR包”是指Java eXtensions for Lotus (JXL),这是一个广泛使用的开源库,专门用于处理Excel电子表格文件。JXL库提供了一组易于使用的API,使得Java开发者可以方便地读取、写入...
java实现数据的导入与导出依赖包 jxl.jar
《深入解析jxl:Java操作Excel的利器》 在Java编程中,处理Excel文件是一项常见的任务,而jxl库正是为此而生。标题中的“jxl源码及jar包”揭示了我们今天要探讨的核心——jxl,一个强大的Java API,它允许开发者...
### POI与JXL实战性能对比分析 #### JXL与POI概述 在日常工作中,尤其是在处理Excel文件时,我们通常会面临选择合适的Java库来完成任务的问题。JXL和POI是两个广泛使用的库,它们各有优势和局限性。 **JXL...