通过读取Excel文档批量插入或更新数据库数据, 这种方式在现有软件应用当中已经屡见不鲜了,下面我简单介绍一下使用JExcel开源工具读取excel文档。
一般读取存在两种:其中一种是读取本地文件;另外一种是通过上传的方式直接读取excel内容。
这两种方式大同小异,主要区别在于获取WorkBook调用方法的不同。
第一种:
WorkBook workbook = WorkBook.getWorkbook(java.io.File file);
第二种是在第一种的基础之上直接读取输入流
WorkBook workbook = WorkBook.getWorkbook(java.io.InputStream is);
获取到WorkBook对象后就可以得到sheet对象和Cell对象了。
下面是读取上传文件方式读取的例子,该例子需要commons-fileupload-*.jar和commons-io-*.jar两个包。
<!-- 通用上传组件 -->
<form method="post" enctype="multipart/form-data" action="../test/uploadoperation.jsp">
<table>
<tr>
<td>
请选择需要上传的文档:
</td>
<td>
<input type="file" id="filename" name="filename">
</td>
<td><input type="submit" value="上传"></td>
</tr>
</table>
</form>
response.setContentType("text/html;charset=gbk");
if (!DiskFileUpload.isMultipartContent(request)) {
out.println("只能处理multipart/form-data类型的数据!");
return;
}
DiskFileUpload fu = new DiskFileUpload();
// 最多上传200M数据
fu.setSizeMax(1024 * 1024 * 200);
// 超过1M的字段数据采用临时文件缓存
fu.setSizeThreshold(1024 * 1024);
// 设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码
fu.setHeaderEncoding("gbk");
// 得到所有表单字段对象的集合
List fileItems = null;
try {
fileItems = fu.parseRequest(request);
} catch (FileUploadException e) {
out.println("解析数据时出现如下问题:");
e.printStackTrace();
return;
}
// 如果存在多个文件, 循环读取内容
// 处理每个表单字段
Iterator i = fileItems.iterator();
while (i.hasNext()) {
FileItem fi = (FileItem) i.next();
if (fi.isFormField()) {
String content = fi.getString("UTF-8");
String fieldName = fi.getFieldName();
request.setAttribute(fieldName, content);
} else {
try {
String pathSrc = fi.getName();
/*
* 如果用户没有在FORM表单的文件字段中选择任何文件,那么忽略对该字段项的处理
*/
if (pathSrc.trim().equals("")) {
continue;
}
InputStream is = fi.getInputStream();//得到文件流
Workbook wb = Workbook.getWorkbook(is);//先得到workbook对象
Sheet sheet = wb.getSheet(0);//然后获取该excel对象的工作表对象,sheet对象可存在多个,可通过
//根据实际情况判断是否需要读取第一行的内容
//举例:如果是要把数据导入到数据库, 则可在第一列放置数据库字段名, 可先通过字段名创建表, 然后插入数据
//注意:这里需要注意数组越界的问题
for (int m = 0; m < sheet.getRows(); m++) {
//先读行, 然后读列
Cell[] cells = sheet.getRow(m);
for (int j = 0; j < cells.length; j++)
{
System.out.println(cells[j].getContents());
}
}
} catch (Exception e) {
out.println("存储文件时出现如下问题:");
e.printStackTrace();
return;
} finally { // 总是立即删除保存表单字段内容的临时文件
fi.delete();
}
}
}
分享到:
相关推荐
### JExcel实用指南知识点解析 #### 一、引言与概述 **JExcel** 是一个强大的Java库,用于处理Excel文件。它为开发者提供了一系列工具和API,使得在Java应用程序中创建、读取、编辑Excel文件变得简单。该实用指南...
通过这些方法,开发者可以轻松地处理Excel文件中的数据,不论是简单的读取还是复杂的遍历和处理。例如,你可以使用`visitWorksheets`方法来实现数据分析,或者使用`getWorksheetRow`方法来获取特定行的数据用于显示...
JExcel是一款在Java平台上知名的开源库,主要用于处理Excel文件的读写操作。它以其轻量级、高效和易用性而受到开发者们的欢迎。然而,有时开发者可能需要在.NET环境中使用类似的功能,因此出现了JExcel的.NET实现。...
jExcel是一个基于Java Swing的表格处理库,它扩展了JTable类,增加了许多实用特性。该库不仅支持基本的表格操作,如添加、删除和编辑单元格数据,还提供了高级功能,例如自定义样式、公式计算以及导入导出Excel文件...
在这个项目中,作者可能通过编写简单的代码示例展示了如何使用JExcel库进行基本操作。 描述中提到的“NULL”意味着没有具体的项目描述,但我们可以通过标签和提供的文件名来推测内容。标签“源码”和“工具”暗示...
### jExcel实现与Java Excel API详解 #### 一、引言 随着互联网技术的发展,越来越多的应用程序需要在Web端处理Excel文件。对于开发者而言,如何高效地读取、写入Excel文件成为了一项重要的技能。Java作为一种广泛...
总之,JExcel 1.7作为一个强大的Java电子表格库,为开发者提供了丰富的功能,无论是创建简单的报表,还是构建复杂的电子表格应用,都能得心应手。通过熟悉和掌握这个工具,开发者可以显著提高数据处理和展示的效率。
例如,一个简单的在线库存管理系统,可以利用jExcel创建库存表格,实时更新库存数量,自动计算总值,同时通过数据验证确保库存数据的合法性。 五、总结 jExcel以其易用性、灵活性和强大的功能,成为前端开发中处理...
《使用jExcel实现前端Excel解析与多Sheet页切换》 在现代Web开发中,数据的交互和展示方式越来越多样化,其中Excel作为一种常见的数据格式,其灵活性和强大的功能使其在数据处理中占据重要地位。jExcel是一款优秀的...
可以从excel复制并直接粘贴到jExcel CE电子表格,反之亦然。 很容易集成任何第三方JavaScript插件来创建您自己的自定义列、自定义编辑器,并在应用程序中自定义任何特性。 jexcelce通过其本机列类型有很多不同的输入...
JExcel2.0的API文档 自己根据官方文档制作,供有兴趣的朋友分享
Java处理Excel的场景在...总的来说,JExcel是Java开发者处理Excel文件的强大工具,它的易用性和灵活性使得在Java项目中集成Excel功能变得简单。无论是在服务器端处理数据还是构建桌面应用,JExcel都能提供高效的支持。
jexcel导出excel文件的demo。版本是6.120.包括读取excel,创建新excel,复制excel三个,其中创建excel又分为普通信息,数字,时间,格式化信息,格式化数值,格式化时间等等,有设置单元格大小,单元格样式,单元格...
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。...
jxls-jexcel-1.0.6.jar java读取excel文件的jarjxls-jexcel-1.0.6.jar
开发者可以通过简单的HTML和JavaScript代码,快速集成jExcel到现有的Web应用中,大大提高了开发效率。 为了更好地理解jExcel的使用,我们可以参考压缩包中的文件"paulhodel-jexcel-c53d899"。这个版本包含了jExcel...
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。
【标题】"Excel报表生成工具---JExcel"是一款专门用于创建和编辑Excel电子表格的Java库,它使得在编程环境中生成动态报表变得简单易行。JExcelAPI是这个工具的核心,它提供了丰富的功能,允许开发者通过代码直接操作...