JAVA网站制作之周全发掘Java Excel API 利用办法(1)
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。excel利用Windows操纵体系的伴侣对Excel(电子表格)必定不会生疏,可是要利用Java言语来利用Excel文件并非一件简单的事。在Web使用日趋流行的明天,经由过程Web来操纵Excel文件的需求愈来愈激烈,今朝较为盛行的操纵是在JSP或Servlet中创立一个CSV(commaseparatedvalues)文件,并将这个文件以MIME,text/csv范例前往给扫瞄器,接着扫瞄器挪用Excel而且显现CSV文件。如许只是说能够会见到Excel文件,可是还不克不及真实的利用Excel文件,本文将给人人一个欣喜,向人人先容一个开放源码项目,JavaExcelAPI,利用它人人就能够便利地利用Excel文件了。JavaExcelAPI简介
JavaExcel是一开放源码项目,经由过程它Java开辟职员能够读取Excel文件的内容、创立新的Excel文件、更新已存在的Excel文件。利用该API非Windows操纵体系也能够经由过程纯Java使用来处置Excel数据表。由于是利用Java编写的,以是我们在Web使用中能够经由过程JSP、Servlet来挪用API完成对Excel数据表的会见。
如今公布的不乱版本是V2.0,供应以下功效:
从Excel95、97、2000等格局的文件中读取数据;
读取Excel公式(能够读取Excel97今后的公式);
天生Excel数据表(格局为Excel97);
撑持字体、数字、日期的格局化;
撑持单位格的暗影操纵,和色彩操纵;
修正已存在的数据表;
如今还不撑持以下功效,但不久就会供应了:
不克不及够读取图表信息;
能够读,可是不克不及天生公式,任何范例公式最初的盘算值都能够读出;
使用示例
1、从Excel文件读取数据表
JavaExcelAPI既能够从当地文件体系的一个文件(.xls),也能够从输出流中读取Excel数据表。读取Excel数据表的第一步是创立Workbook(术语:事情薄),上面的代码片断举例申明了应当怎样操纵:(完全代码见ExcelReading.java)
importjava.io.*;
importjxl.*;
…………
try
{
//构建Workbook对象,只读Workbook对象
//间接从当地文件创立Workbook
//从输出流创立Workbook
InputStreamis=newFileInputStream(sourcefile);
jxl.Workbookrwb=Workbook.getWorkbook(is);
}
catch(Exceptione)
{
e.printStackTrace();
}
一旦创立了Workbook,我们就能够经由过程它来会见ExcelSheet(术语:事情表)。参考上面的代码片断:
//猎取第一张Sheet表
Sheetrs=rwb.getSheet(0);
我们既大概经由过程Sheet的称号来会见它,也能够经由过程下标来会见它。假如经由过程下标来会见的话,要注重的一点是下标从0入手下手,就像数组一样。
一旦失掉了Sheet,我们就能够经由过程它来会见ExcelCell(术语:单位格)。参考上面的代码片断:
//猎取第一行,第一列的值
Cellc00=rs.getCell(0,0);
Stringstrc00=c00.getContents();
//猎取第一行,第二列的值
Cellc10=rs.getCell(1,0);
Stringstrc10=c10.getContents();
//猎取第二行,第二列的值
Cellc11=rs.getCell(1,1);
Stringstrc11=c11.getContents();
System.out.println("Cell(0,0)"+"value:"+strc00+";type:"+c00.getType());
System.out.println("Cell(1,0)"+"value:"+strc10+";type:"+c10.getType());
System.out.println("Cell(1,1)"+"value:"+strc11+";type:"+c11.getType());
假如仅仅是获得Cell的值,我们能够便利地经由过程getContents()办法,它能够将任何范例的Cell值都作为一个字符串前往。示例代码中Cell(0,0)是文本型,Cell(1,0)是数字型,Cell(1,1)是日期型,经由过程getContents(),三品种型的前往值都是字符型。
假如有必要晓得Cell内容切实其实切范例,API也供应了一系列的办法。参考上面的代码片断:
Stringstrc00=null;
doublestrc10=0.00;
Datestrc11=null;
Cellc00=rs.getCell(0,0);
Cellc10=rs.getCell(1,0);
Cellc11=rs.getCell(1,1);
if(c00.getType()==CellType.LABEL)
{
LabelCelllabelc00=(LabelCell)c00;
strc00=labelc00.getString();
}
if(c10.getType()==CellType.NUMBER)
{
NmberCellnumc10=(NumberCell)c10;
strc10=numc10.getvalue();
}
if(c11.getType()==CellType.DATE)
{
DateCelldatec11=(DateCell)c11;
strc11=datec11.getDate();
}
System.out.println("Cell(0,0)"+"value:"+strc00+";type:"+c00.getType());
System.out.println("Cell(1,0)"+"value:"+strc10+";type:"+c10.getType());
System.out.println("Cell(1,1)"+"value:"+strc11+";type:"+c11.getType());
在失掉Cell对象后,经由过程getType()办法能够取得该单位格的范例,然后与API供应的基础范例相婚配,强迫转换成响应的范例,最初挪用响应的取值办法getXXX(),就能够失掉断定范例的值。API供应了以下基础范例,与Excel的数据格局绝对应,以下图所示:
每品种型的详细意义,请拜见JavaExcelAPIdocument.
当你完成对Excel电子表格数据的处置后,必定要利用close()办法来封闭先前创立的对象,以开释读取数据表的过程当中所占用的内存空间,在读取大批数据时显得尤其主要。参考以下代码片断:
//操纵完成时,封闭对象,开释占用的内存空间
rwb.close();
JavaExcelAPI供应了很多会见Excel数据表的办法,在这里我只扼要地先容几个经常使用的办法,别的的办法请参考附录中的JavaExcelAPIdocument.
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 是一种突破用户端机器环境和CPU 是一种语言,用以产生「小应用程序(Applet(s)) 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 Java 编程语言的风格十分接近C、C++语言。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 Java是一种计算机编程语言,拥有跨平台、面向对java 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
页:
[1]
2