jxl解析excel

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

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

名称        
Workbook
Sheet
Cell

Jxl读excel:

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

Java代码
getWorkbook(File file)  
 
      getWorkbook(File file,WorkSettings ws)  
 
      getWorkbook(InputStream is)  
 
      getWorkbook(InputStream is,WorkSettings ws)

getWorkbook(File file)

getWorkbook(File file,WorkSettings ws)

getWorkbook(InputStream is)

getWorkbook(InputStream is,WorkSettings ws)

参数有两个:

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

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

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

代码段:

Java代码
Workbook wb=null;  
 
try 
 
{  
 
wb = Workbook.getWorkbook(excelFile);  
 
wb.close();  
 
}  
 
catch(BiffException ex){  
 
       //转换错误  
 
}catch(IOException ex){  
 
       //IO错误  
 
}

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;

Java代码
if(wb.getNumberOfSheets()>0)  
 
{  
 
       sheet = wb.getSheet(0);  
 
}

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相关推荐

  1. Jxl解析Excel表格数据

    /** * @file ExcelUtils.java * * @brief ExcelUtils.java相关函数 * * * @author * - Dec 28, 2011 xxxx * * @ ...

  2. java jxl 解析excel,java使用jxl解析Excel

    废话不多说,直接扔代码. //使用jxl需要导入的类 import jxl.Cell; import jxl.CellType; import jxl.Sheet; import jxl.Workbo ...

  3. Java基础系列19:使用JXL或者POI生成和解析Excel文件

    一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析. 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前.相反,poi属于A ...

  4. java 兼容excel_Java解析Excel工具类(兼容xls和xlsx)

    依赖jar org.apache.poi poi-ooxml 4.0.1 ExcelUtils.java package javax.utils; import java.io.File; impor ...

  5. jsp后台批量导入excel表格数据到mysql中_运用java解析excel表,拿到表中的数据并批量插入数据库...

    首先,本文是运用jxl进行excel表的解析,所以我们需要先下载一个jxl.jar的jar包: 并且需要一个与excel表对应的实体类,用于接收excel的数据: 然后就是代码部分,我们先编写一个函数 ...

  6. java使用jxl生成excel表格,jsp使用js下载excel文件xls

    java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...

  7. ftp上下载解析Excel

    最近工作中要用到从ftp上解析Excel,记录一下当前进度 应用jar包 jxl.jar 主要分三步 连接服务器.将目标文件下载到本地.Excel解析 1.连接服务器 // 连接ftp服务器priva ...

  8. Java中的文件解析——Excel解析

    在日常的开发过程中,经常会使用到excel工作簿进行数据的保存,那么在java中,通常会使用第三方提供的技术来进行excel文件的解析,比如:Apache POI.JXL.Alibaba EasyEx ...

  9. ExceL文档2.上传解析Excel文档

    控制层方法: @RequestMapping(value = "/parseEXCEL.do", method = RequestMethod.POST) public Strin ...

最新文章

  1. 探访日本滨松光子:“光”如何加速汽车行业进入智能汽车时代
  2. Git指令中fetch和pull的区别fetch和pull的区别
  3. C# 使用Linq递归查询数据库遇到的问题及解决方法
  4. Silverlight 3 Tools 中文版地址
  5. 如何检测整数相加溢出
  6. ElasticSearch、Kibana Web管理
  7. linux 目录sbit,linux中SUID,SGID与SBIT的奇妙用途详解
  8. 暴力枚举——三连击(洛谷 P1618)
  9. C# 中对于json的解析小结
  10. mongodb多条件查询
  11. 于谦一共收了几个徒弟,为什么?
  12. informatica如何设置失败告警_智能运维中的关键一步——告警管理
  13. WCF开发实战系列二:使用IIS发布WCF服务(转)
  14. linux内核与用户之间的通信方式——虚拟文件系统、ioctl以及netlink .
  15. C语言入门20个简单程序|最新更新2021.7.13
  16. C语言变量相关试题,C语言模拟试题
  17. vue下拉框数据填充
  18. 我从冯·诺依曼计算机体系,追溯到了JVM,一切原来如此
  19. 网易区块链打造可信数字身份认证应用新场景,赋能科技峰会
  20. QT创建文件夹并在文件夹下创建文件

热门文章

  1. js实现审批流_JavaScript实现审核流程状态的动态显示进度条
  2. 4444端口 linux,Docker Container无法访问本地主机端口4444。为什么?
  3. mysql 开仓函数_MySQL函数大全 及用法示例
  4. android 比较两个list,比较两个List的内容是否相等
  5. html广告位代码,一段CSS代码让你的广告位“立起来”
  6. 网络七层协议_Nginx七层负载均衡原理解析
  7. 【c语言】蓝桥杯算法提高 企业奖金发放
  8. python oserror errorno 39_shutil.rmtree 函数 OSError: [Errno 39] Directory not empty: 错误原因
  9. linux python虚拟环境 相关的
  10. BZOJ2215[Poi2011]Conspiracy——2-SAT+tarjan缩点