利用Java进行Excel的数据导入导出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下标来访 问的话,要注意的一点是下标从0 开始,就像数组一样。 一旦得到了 Sheet,我们就可以通过它来访问Excel Cell(术 语
:单元格)。代码如下: //获取第一行,第一列的值 Cell c00=rs.getCell(0, 0); String strc00=
c00.getContents(); //获取第一行,第二列的值 Cell c10=rs.getCell(1, 0); String
strc10=c10.getContents();//获取第二行,第二列的值 Cell c11=rs.getCell(1, 1); St
ring strc11=c11.getContents(); 如果仅仅是取得Cell 的值,我们可以方便地通过 getContents()方
法,它可以将任何类型 的Cell 值都作为一个字符串返回。示例代码中 Cell(0, 0)是 文本型,Cell(1, 0)是数字型, Ce
)行高和列宽 WritableSheet.setRowView(int i,int height); 作用是指定第i+1 行的高度,比如
: //将第一行的高度设为200[5] sheet.setRowView(0,200); WritableSheet.setColum
nView(int i,int width); 作用是指定第i+1 列的宽度,比如: //将第一列的宽度设为30[5] sheet.s
; j++) {// 在sheet 中写标题栏 sheet.addCell(new Label(j, 0, title[j], arial
12format));} //查询需要的数据,放在List 结果集中 List<SingleTaskScoreExportInfo> s
cores = studyManager.getSingleTaskScoresByCourse(courseId,taskId); /
itableCellFormat 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.mergeCell
); WritableWorkbook wwb=Workbook.createWorkbook(os); //创建工作表,并写入相应的表
头字段WritableSheet sheet=wwb.createSheet("所有成绩", 0); String []title={"学
号","班级","姓名","作业标题","完成时间","分数","次数"}; for (int j=0; j < title.length
的意义。 在开源世界中,有两套比较有影响的API 提供Excel 数据导 入导出的功能,一个是POI, 一个是jExcelAPI。本文结合
基于J2EE 开发的多媒体教学系统中提供的将学生作业信 息导出 到Excel 表格中的实例,详细阐述了利用JAVA 开发的 jExcelAPI
操作excel 的方法。 2. Jxl 简介 2.1 Java 语言简介 Java 语言具有面向对象、与平台无关、安全、稳定和多线程
等优良特性,是目前软件设 计中极为强大的编程语言[1]。它具有以下一些特点[2]: 简单,面向对象,分布式,解释执行, 鲁棒,安全,体系结
构中立,可移植,高性能,多线程以及动态性。 2.2 什么是Jxl Java Excel 是一开放源码项目,通过它Java 开发人员可以 读
取Excel 文件的内容、创建 新的Excel 文件、更新已经存在的Excel 文件。使用该 API 非Windows 操作系统也可以通
); //Method 2:将WritableWorkbook 直接写入到输出流 } catch (Exception e) {e.
printStackTrace();} //创建Excel 工作表 jxl.write.WritableSheet ws=wwb.cre
ateSheet("Test Sheet 1", 0); //1.添加Label 对象 jxl.write.Label labelC=n
97)[3]; 支持字体、数字、日期的格式化[3]; 支持单元格的阴影操作,以及颜色操作[3]; 修改已经存在的数据表。 2.3
代码举例 2.3.1 从Excel 文件读取数据表 Java Excel API 既可以从本地文件系统的一个文件(.xls),也 可以从输
入流中读取Excel 数据表。读取Excel 数据表的第一步是创建Workbook(术语: 工作薄),相关文献中给出了 部分事例介绍[4]
); sheet.addCell(label); // 添加完成时间 SimpleDateFormat sdf=new SimpleD
/将相关的信息写入到工作表 SingleTaskScoreExportInfo item; int row=1; for (it=sc
ores.iterator(); it.hasNext();) { item=(SingleTaskScoreExportInfo) it
.next(); if(!"".equals(item.getStudentNum())&&null!=item.getStuden tNu
s(int m,int n,int p,int q); 作用是从(m,n)到(p,q)的单元格全部合并,比如: WritableShee
t sheet=book.createSheet(“第一页”,0) [5]; //合并第一列第一行到第六列第一行的所有单元格 sheet
.mergeCells(0,0,5,0); 合并既可以是横向的,也可以是纵向的。合并后的单元格不能再 次进行合并,否则会触 发异常。 2
1. 引言 MS 的电子表格(Excel)是Office 的重要成员,是保存统 计数据的一种常用格式。在一 个Java 应用中,将一部分数
据生成Excel 格式,是与其他系统无缝连接的重要手段。 在远程 网络教学系统中,利用Excel 表格统计学生的作业考试情 况信息,便于老师了
解学生的学习 情况,分析教学效果,制定教学计划。所以,用Java 操 作Excel 表格,导出相关的信息对于 远程网络教育系统有着的很重要
ew jxl.write.Label(0, 0, "This is a Label cell"); ws.addCell(labelC);
//添加带有字型Formatting 的对象 jxl.write.WritableFont wf=new jxl.write.Writab
leFont(WritableFont.TIMES,18, WritableFont.BOLD, true); jxl.write.Wr
etColumnView(0,30); 3. 应用实例 本文所举的实例为网上多媒体教学系统中对于学生作业导出信息 的实现。 3.1 系统
界面及导出表实例 下图 1 为导出功能的入口:点击导出此次作业的成绩按钮,就会 触发相应的动作,进行 数据表的导出3.2 实现代码 导出
之前首先要定义一个 SingleTaskScoreExportInfo 对象,用 来存放从数据库中查询出 来的导出表需要的相关字段的信息。它
,下面的代码片段举例说明了应该如何操作: import java.io.*; import jxl.*; ………… try
{ //构建Workbook 对象, 只读Workbook 对象 //直接从本地文件创建Workbook //从输入流创建Workbo
ok InputStream is=new FileInputStream(sourcefile); jxl.Workbook rwb=
过纯Java 应用来处理Excel 数据表。因为是使用Java 编写 的,所以我们在Web 应用中可以 通过JSP、 Servlet 来调
用API 实现对Excel 数据表的访问。 Jxl 发布的稳定版本是V2.0,提供以下功能: 从 Excel 95、97、2000 等格
式的文件中读取数据[3]; 读取 Excel 公式(可以读取Excel 97 以后的公式)[3];生 成Excel 数据表(格式为Excel
ll(1,1)是日期型,通过getContents(),三种类型的返回值 都是字符型。 当完成对 Excel 电子表格数据的处理后,一定要使
用close()方法来关闭先前创建的对象, 以释放读取数据表的过程中所占用的内存空间,在读取 大量数据时显得尤为重要。 //操作完成时,关
闭对象,释放占用的内存空间 rwb.close(); 2.3.2 生成新的Excel 工作薄 与读取 Excel 工作表相似,首先要使
m()){ //添加学号 Label label=new Label(0, row, item.getStudentNum()); s
heet.setColumnView(0, 20); sheet.addCell(label); //添加班级 label=new L
abel(1, row, item.getClassGroupName()); sheet.setColumnView(1, 50);
: //定义表格名称为作业成绩,创建工作薄 String filename="作业成绩"; response.setHeader("C
ontent-Disposition" ,"attachment;filename="+new String(filename.getBy
tes(),"iso8859-1")+".xls"); OutputStream os=response.getOutputStream(
Workbook.getWorkbook(is); } catch (Exception e) {e.printStackTrace(
);} 一旦创建了 Workbook,我们就可以通过它来访问Excel Sheet(术语: 工作表)。代码如 下: //获取第一张She
et 表 Sheet rs=rwb.getSheet(0); 我们既可能通过Sheet 的名称来访问它,也可以通过下标 来访问它。如果通过
是作业接收者对象的一个子集,只包含了作业接收者 对象中学号,姓名,班级,作业标题,完成时间,分数, 查看次数等信息。 为数据导出按钮连接消
息处理函数:函数主要包括生成工作表,调用方法从数据库中将 对应某次作业的作业接收者的信息查找出来, 并用相关的属性初 始化 SingleT
askScoreExportInfo 对象,放在结果集中,构造循环将查 询到的结果集中的对象写入 到Excel 表格中。以下是实现的主要代码
用Workbook 类的工厂方法创建一个可写入的工作 薄(Workbook)对象,相关文献中给出了事例介绍[4],具 体代码如下: try
{ //构建Workbook 对象, 只读Workbook 对象 //Method 1:创建可写入的Excel 工作薄 jxl.w
rite.WritableWorkbook wwb=Workbook.createWorkbook(new File(targetfile)
sheet.addCell(label); //添加姓名 label=new Label(2,row,item.getStudentNa
me()); sheet.setColumnView(2, 10); sheet.addCell(label); //添加作业标题
源自文库
label=new Label(3,row,item.getTaskTitle()); sheet.setColumnView(3, 30
相关文档
最新文档