- 浏览: 232469 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
xiangcaotiank:
附件已经在服务器上的时候该如何处理,比如,草稿箱里已经有了两个 ...
JavaMail发邮件【可带附件】 -
xiaoyaolong:
代码规范也写的非常好,值得学习!
JavaMail发邮件【可带附件】 -
xiaoyaolong:
效果不错噢,非常感谢!
JavaMail发邮件【可带附件】 -
argel_lj:
单机这样连好像也不行啊
Oracle监听找不到解决方法 -
xiangxuehai_jiaer:
...
Java解析XML四种方法
项目中经常会用到Excel数据批量导入,这里总结一下使用JXL导入Excel数据。
我们可以到http://sourceforge.net/projects/jexcelapi/files/ 下载它的Jar包。我们先写一个JXL操作xls的工具类。
package com.pjb.sys.util; import java.io.File; import java.io.InputStream; import java.util.ArrayList; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; /** * 提供对XLS格式类型的文件进行处理 * * @author Administrator * */ public class XlsTools { private Workbook readBook; private int currIndex; private ArrayList<String> alLineContent; private Cell cell; private int firstDataCount; private boolean isFirst; private Sheet sheet; private WritableWorkbook writeBook; private WritableSheet writeSheet; private Label label; /** * 初始化xls文件的读取参数 * * @param filePath * xls文件路径 * */ public void read(String filePath) throws Exception { try { // 创建xls工作表对象 readBook = Workbook.getWorkbook(new File(filePath)); // 只读取第一个工作表中的内容 sheet = readBook.getSheet(0); currIndex = 0; isFirst = true; } catch (Exception e) { throw new Exception(e); } } /** * * @param is * 初始化xls文件的读取参数 * @throws Exception */ public void read(InputStream is) throws Exception { try { // 创建xls工作表对象 readBook = Workbook.getWorkbook(is); // 只读取第一个工作表中的内容 sheet = readBook.getSheet(0); currIndex = 0; isFirst = true; } catch (Exception e) { throw new Exception(e); } } /** * 读取一行xls文件中的数据 * * @return 包含数据的String列表 */ public ArrayList<String> readLine() { alLineContent = new ArrayList<String>(); int i = 0; String content = null; while (true) { if (!isFirst && i >= firstDataCount) break; try { // 读取一个单元格的数据 cell = sheet.getCell(i, currIndex); i++; } catch (Exception e) { // 没有数据可读取 if (i == 0) return null; // 读取首行 if (isFirst) { firstDataCount = i; isFirst = false; break; } else content = ""; } content = cell.getContents(); // 首行存在空值时认为提取数据完毕 if (isFirst && "".equals(content)) { firstDataCount = i - 1; isFirst = false; break; } alLineContent.add(content); } currIndex++; return alLineContent; } /** * 读取xls文件中的所有可读取数据 */ public ArrayList<ArrayList<String>> readAll() { ArrayList<ArrayList<String>> alAllData = new ArrayList<ArrayList<String>>(); ArrayList<String> data = null; while (true) { data = this.readLine(); if (data == null) break; alAllData.add(data); } return alAllData; } public void closeRead() { readBook.close(); } /** * 创建一个xls文件并初始化写入参数 * * @param filePath * xls文件路径 */ public void write(String filePath) throws Exception { try { // 打开.xls文件 writeBook = Workbook.createWorkbook(new File(filePath)); // 创建一个工作表 writeSheet = writeBook.createSheet("Sheet1", 0); currIndex = 0; } catch (Exception e) { throw new Exception(e); } } /** * 将一条数据写入xls文件中 * * @param dataLine * 需要写入的数据集合 */ public void writeLine(ArrayList<String> dataLine) throws Exception { try { for (int i = 0; i < dataLine.size(); i++) { label = new Label(i, currIndex, dataLine.get(i)); writeSheet.addCell(label); } currIndex++; } catch (Exception e) { throw new Exception(e); } } /** * 将所有数据写入xls文件 * * @param data需要写入的数据 */ public void writeAll(ArrayList<ArrayList<String>> data) throws Exception { for (int i = 0; i < data.size(); i++) { this.writeLine(data.get(i)); } } public void closeWrite() throws Exception { try { // 将值写到文件中 writeBook.write(); writeBook.close(); } catch (Exception e) { throw new Exception(e); } } }
接下来,我们以Struts1.2的FormFile做文件上传。编写如下Form
package com.pjb.struts.form; import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; @SuppressWarnings("serial") public class UploadForm extends ActionForm { private FormFile formFile; public FormFile getFormFile() { return formFile; } public void setFormFile(FormFile formFile) { this.formFile = formFile; } }
JSP页面
<%@ page language="java" contentType="text/html; charset=utf-8"%> <%@ include file="/page/importTag.jsp"%> <html> <head> <% String str = "<script type='text/javascript'>" + "\n alert('操作成功');" + "\n</script>"; String reuslt = (String) request.getAttribute("result"); if ("1".equals(reuslt)) out.println(str); %> </head> <body> <div align="center"> <html:form action="/ExcelImport.do?method=upload" method="post" enctype="multipart/form-data"> 选择导入文件<html:file property="formFile" onkeydown="javascrpit:return false;" /> <input type="submit" value="导入数据" /> </html:form> </div> </body> </html>
Struts Action代码如下。
/** * 读XLS数据 * * @param mapping * @param form * @param request * @param response * @return ActionForward * @throws Exception */ public ActionForward readXls(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try { UploadForm uploadForm = (UploadForm) form; FormFile file = uploadForm.getFormFile(); InputStream is = file.getInputStream(); XlsTools xlsTools = new XlsTools(); xlsTools.read(is); //读Xls行所有数据并封装 ArrayList<ArrayList<String>> listAll = xlsTools.readAll(); xlsTools.closeRead(); List<UserBean> userList = new ArrayList<UserBean>(); for (int i = 1; i < listAll.size(); i++) { ArrayList<String> aList = listAll.get(i); UserBean user = new UserBean(); user.setUserName(aList.get(0)); userList.add(user); } logger.info(userList); //调用Service写入数据库...... request.setAttribute("result", "1"); return mapping.getInputForward(); } catch (Exception e) { e.printStackTrace(); logger.error(e.getMessage()); request.setAttribute("errMsg", e.getMessage()); } return mapping.findForward("error"); }
发表评论
-
DWR
2010-03-04 13:41 1015DWR是一个框架,简单的说就是能够在javascript直接调 ... -
获得客户端真实IP地址
2009-12-30 16:05 1075我们知道在JSP里,获取网页客户端的IP地址的方法是:requ ... -
创建和管理有状态 Web 应用程序
2009-11-17 23:49 926在创建有状态应用程序时,数据管理是关键。为了智能地管理用户数据 ... -
什么是线程安全?
2009-10-31 22:18 2137如果你的代码所在的进程中有多个线程在同时运行,而这些线程可 ... -
session与cookie
2009-10-31 01:54 852术语session在我的经验里 ... -
HttpSession
2009-10-31 01:42 1109HttpSession常见问题 1、ses ... -
Java获取真实客户端IP地址
2009-10-29 23:55 1524在JSP里,获取客户端的IP地址的方法是:request.ge ... -
Java解析XML四种方法
2009-10-29 20:40 2010XML现在已经成为一种通 ... -
Tomcat配置DataSource
2009-10-24 16:04 5924一、数据源简介:*********************** ... -
Tomcat安装Admin控制平台和管理平台
2009-10-24 16:02 1546Tomcat 5可以通过 ... -
J2EE体系结构设计
2009-10-24 13:46 1052J2EE体系结构设计 目前 ... -
使用Ant构建J2EE开发目录结构
2009-10-22 23:19 2731企业应用程序由一个或 ... -
Linux安装JDK
2009-10-22 21:08 12451:下载JDK【jdk-6u1-linux-i586.bin】 ... -
WEB资源设置安全约束
2009-09-24 23:24 1124<!-- 当web客户访问受保护的资源时,系统弹出登陆对 ... -
自动刷新页面
2009-09-22 23:45 1025一分钟自动刷新页面<meta http-equiv=&q ... -
target属性
2009-09-22 23:42 1198html target HTML中target的相关说明 ... -
EJB三个对象
2009-09-22 23:40 1948EJB的三个对象 1、Remote(或Local)接口 ... -
EJB bean理解
2009-09-22 23:39 1385实体bean(entity bean) 实体bean用来表示 ... -
EJB事务属性理解
2009-09-22 23:38 22901、Required 当需要EJB总是运行在事务当中时使用R ... -
数据源详解
2009-09-22 23:36 847一、数据源简介:******* ...
相关推荐
在Java编程环境中,处理Excel数据是一项常见的任务,无论是读取...总之,`jxl`库是Java开发者处理Excel文件的一个有力工具,它简化了读取、写入和修改Excel数据的过程,使得在Java应用中集成Excel功能变得更加便捷。
三、导入Excel数据 1. **读取工作簿** 使用`Workbook`类的静态方法`Workbook.getWorkbook(File)`读取Excel文件。例如: ```java File excelFile = new File("path_to_your_excel_file.xls"); Workbook workbook ...
在导入Excel数据时,我们通常会先打开文件,然后逐行读取数据。JXL中的`Workbook`类代表整个Excel工作簿,`Worksheet`类则表示工作簿中的单个工作表。通过`Workbook.read(File)`方法,我们可以加载Excel文件。接下来...
在Java开发中,处理Excel数据是一项常见的任务,无论是读取大量数据进行分析,还是批量导入导出信息。这里我们关注的是两个主要的库:jxl和Apache POI,它们都是用于处理Excel文件的强大工具。 首先,让我们深入...
本文将详细介绍如何使用JXL库来读取Excel数据,并通过一个实际的代码示例进行演示。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
标题“利用jxl把excel中的数据导入数据库”指的是使用Java Excel API(jxl)这个库来读取Excel文件中的数据,并将这些数据批量地导入到关系型数据库中。这是一个常见的需求,特别是在处理大量结构化数据时,例如进行...
在Java开发中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理、报表生成或数据分析场景下。本文将详细介绍如何使用jxl库来读取Excel文件,并将其内容存储到MySQL数据库中。 首先,我们需要了解jxl...
Struts2 框架与 Apache 的 JXL 库整合,可以方便地实现在 Java Web 应用中导入和导出 Excel 表格的功能。Apache JXL 是一个强大的 Java 库,专门用于读写 Microsoft Excel 文件,使得开发者无需依赖 Office API 就能...
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。
在Java编程环境中,我们经常需要处理数据的导入和导出,Excel作为一种常见的数据存储和展示格式,被广泛应用。`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库...
Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...
在Java编程领域,处理Excel数据是一项常见的任务,而`jxl`库则是一个非常实用的工具,用于读取和写入Excel文件。本示例"jxl导入导出excel完美运行demo"提供了一个完整的实现,使得开发者能够快速理解和应用Excel处理...
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
### 数据导入Excel运用JXL的各类方法介绍 在IT领域,特别是数据分析与处理工作中,Excel是一种广泛使用的工具,因其强大的数据处理能力和灵活的表格编辑功能而受到青睐。然而,当涉及到大量的数据导入或自动化处理...
4. **生成TXT文件**:在提取了Excel数据后,可以使用Java的`PrintWriter`类向TXT文件写入数据。创建一个`PrintWriter`对象,然后逐行写入数据。 ```java PrintWriter writer = new PrintWriter(new FileWriter(...
这个项目的核心功能是允许用户通过前端界面提交数据,然后这些数据会被Struts2的Action处理,并使用POI或JXL库写入到指定的Excel文件中。为了实现这一功能,你需要理解以下几个关键知识点: 1. **Struts2 Action**:...
在Java开发中,导入Excel数据并将其保存到本地数据库是一项常见的任务,特别是在处理大量结构化数据时。这里我们将深入探讨如何使用jxl库来实现这一功能。 jxl是一个流行的Java库,专门用于读写Microsoft Excel文件...
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`jxl`库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。在这个特定的场景中,我们将探讨如何...