本文为大家介绍java实现excel导入导出(java数据导出到excel),下面和小编一起看看详细内容吧。
1 简介
ms电子表格(excel)是office的重要成员,是保存统计数据的常用格式。在一个
在java应用程序中,将部分数据生成为excel格式是与其他系统无缝对接的重要手段。在远程
在网络教学系统中,使用excel表格统计学生的作业和考试信息,方便老师了解学生的学习情况
情,分析教学效果,制定教学计划。因此,使用java操作excel表格并导出相关信息对于
远程网络教育系统具有非常重要的意义。
在开源界,有两套比较有影响力的api提供了导入导出excel数据的功能,一套是poi,
一个是jexcel api。本文结合基于j2ee的多媒体教学系统提供的学生作业信息导出
从excel表格中的例子,详细讲解了使用java开发的jexcelapi操作excel的方法。
2. jxl简介
2.1 java语言简介
java语言具有面向对象、平台无关、安全、稳定、多线程等优良特性。
极其强大的编程语言[1]。它具有以下特点[2]:简单、面向对象、分布式、解释和执行,
健壮、安全、架构中立、可移植、高性能、多线程和动态。
2.2 什么是jxl
java excel 是一个开源项目,它使java 开发人员能够读取excel 文件的内容,创建
新的excel 文件,更新现有的excel 文件。非windows 操作系统也可以使用此api
通过纯java 应用程序处理excel 数据表。因为它是用java 编写的,所以在我们的web 应用程序中我们可以
通过jsp和servlet调用api,实现对excel数据表的访问。
jxl发布的稳定版为v2.0,提供以下功能:
从excel 95、97、2000等格式的文件中读取数据[3];
读取excel公式(excel 97以后可以读取公式)[3];生成excel数据表(excel 97格式)[3];
支持字体、数字、日期格式化[3];
支持单元格阴影操作、颜色操作[3];
修改现有数据表。
2.3 代码示例
2.3.1 从excel文件中读取数据表
java excel api 可以从本地文件系统上的文件(.xls) 或输入流中读取excel
数据表。阅读excel数据表的第一步是创建workbook(术语:工作簿),在相关文献中给出
[4]中介绍了一些例子,下面的代码片段说明了如何操作:
导入java.io.*;
导入jxl.*;
………………
尝试
{
//构造workbook对象,只读workbook对象
//直接从本地文件创建工作簿
//从输入流创建工作簿
inputstream=new fileinputstream(sourcefile);
jxl.工作簿rwb=工作簿。获取工作簿(是);
}
抓住(例外e)
{即。 printstacktrace();}
工作簿创建后,我们可以通过它访问excel工作表(术语:工作表)。代码像
向下:
//获取第一个sheet
工作表rs=rwb。得到工作表(0);
我们可以通过工作表的名称或下标来访问它。如果通过下标访问
如果你问,需要注意的一点是下标从0 开始,就像数组一样。
一旦我们有了工作表,我们就可以通过它访问excel 单元格(术语:单元格)。代码如下:
//获取第一行第一列的值
单元格c00=rs。得到细胞(0,0);
字符串strc00=c00。获取内容();
//获取第一行第二列的值
单元格c10=rs。得到细胞(1,0);
string strc10=c10.getcontents();//获取第二行第二列的值
单元格c11=rs。 getcell(1, 1);
字符串strc11=c11。获取内容();
如果我们只是获取cell的值,我们可以方便的通过getcontents()方法,这个方法可以转换任意类型
单元格值作为字符串返回。示例代码中,cell(0, 0)为文本类型,cell(1, 0)为数字类型,
cell(1,1)是日期类型,通过getcontents(),三个类型的返回值都是字符类型。
当处理完excel电子表格数据后,一定要使用close()方法关闭之前创建的对象,
为了释放读取数据表过程中占用的内存空间,在读取大量数据时尤为重要。
//当操作完成后,关闭对象,释放占用的内存空间
白平衡。关闭();
2.3.2 生成新的excel工作簿
类似于读取excel工作表,首先使用workbook类的工厂方法创建一个可写工作表
薄(工作簿)对象,在相关文献中给出
出了事例介绍[4],具体代码如下:
try
{
//构建workbook 对象, 只读workbook 对象
//method 1:创建可写入的excel 工作薄
jxl.write.writableworkbook wwb = workbook.createworkbook(new file(targetfile));
//method 2:将writableworkbook 直接写入到输出流
/*
outputstream os = new fileoutputstream(targetfile);
jxl.write.writableworkbook wwb = workbook.createworkbook(os);
*/}
catch (exception e)
{e.printstacktrace();}
//创建excel 工作表
jxl.write.writablesheet ws = wwb.createsheet(test sheet 1, 0);
//1.添加label 对象
jxl.write.label labelc = new jxl.write.label(0, 0, this is a label cell);
ws.addcell(labelc);//添加带有字型formatting 的对象
jxl.write.writablefont wf = new jxl.write.writablefont(writablefont.times,18,
writablefont.bold, true);
jxl.write.writablecellformat wcff = new jxl.write.writablecellformat(wf);
jxl.write.label labelcf = new jxl.write.label(1, 0, this is a label cell, wcff);
ws.addcell(labelcf);
2.3.3 单元格操作
1)合并单元格
writablesheet.mergecells(int m,int n,int p,int q);
作用是从(m,n)到(p,q)的单元格全部合并,比如:
writablesheet sheet=book.createsheet(“第一页”,0) [5];
//合并第一列第一行到第六列第一行的所有单元格
sheet.mergecells(0,0,5,0);
合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触
发异常。
2)行高和列宽
writablesheet.setrowview(int i,int height);
作用是指定第i+1 行的高度,比如:
//将第一行的高度设为200[5]
sheet.setrowview(0,200);
writablesheet.setcolumnview(int i,int width);
作用是指定第i+1 列的宽度,比如:
//将第一列的宽度设为30[5]
sheet.setcolumnview(0,30);
3. 应用实例
本文所举的实例为网上多媒体教学系统中对于学生作业导出信息的实现。
3.1 系统界面及导出表实例
好了,java实现excel导入导出(java数据导出到excel)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。