- 浏览: 142630 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (119)
- ibatis (7)
- oracle (14)
- struts (4)
- js (11)
- web (6)
- java基础 (16)
- jstl (1)
- use (2)
- log4J (1)
- Json (2)
- jxl (5)
- server (1)
- spring (4)
- jquery (8)
- struts2 (1)
- AjaxAnywhere (1)
- extjs (1)
- hibernate (1)
- other (3)
- tld (1)
- jms (2)
- lib (0)
- 应用 (1)
- web前端 (2)
- linux (2)
- jvm (9)
- 缓存 (1)
- spring mvc (1)
- ftp (1)
- ide (1)
最新评论
- 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);
- }
- }
- }
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;
- }
- }
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>
<%@ 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");
- }
/** * 读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"); }
相关推荐
java后台jxl将excel数据导入到MYSQL中
用jxl导入Excel数据,资源包含API文档,JXL介绍,中文教程,功能解析,Java中JXL操作Excel用法示例
Excel导入导出 jxl及Poi 工具类:jxl 实现 及 Poi实现 非常实用
在Java编程中,JXL库是一个非常实用的工具,它允许开发者方便地处理Excel文件,包括数据的导入和导出。在这个场景中,我们主要关注的是如何使用JXL库来导出数据到Excel文件。以下是对给定代码的详细解释和相关知识点...
Struts2 框架与 Apache 的 JXL 库整合,可以方便地实现在 Java Web 应用中导入和导出 Excel 表格的功能。Apache JXL 是一个强大的 Java 库,专门用于读写 Microsoft Excel 文件,使得开发者无需依赖 Office API 就能...
使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。
Java中的Jxl库是一个强大的工具,用于...总的来说,Jxl库为Java开发者提供了一个简单易用的接口来操作Excel文件,适合进行基础的导入导出和数据处理任务。然而,对于更复杂的Excel操作,可能需要寻找更强大的解决方案。
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
数据导入Excel运用JXL的各类方法介绍
Java使用JXL库进行Excel导入导出是一种常见的技术实践,特别是在需要在Java应用程序或Web应用中处理Excel数据时。JXL是一个轻量级的库,它允许开发人员以纯Java方式读取、创建和修改Excel文件,而无需依赖于Windows...
包括POI和JXL两种方法读取EXCEL数据的工具类(传入文件或者文件路径直接调用)以及所需要的jar包
它使得在非Windows操作系统上也能处理Excel数据表成为可能,只需通过纯Java代码实现。 jxl库的主要功能包括: 1. 读取Excel 95、97、2000等不同格式的文件中的数据。 2. 读取Excel公式,特别是Excel 97之后的公式。...
java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据
一个简单的struts2框架,使用poi和jxl由前台向excel表中添加数据的一个小程序源码,下载下来部署到服务器就能使用,execl的路径在action中修改成你的路径就能使用了
JXL 将内容导入到Excel中 ,一个小例子 , 内有详细注释。
jxl java 数据导出为excel工具包 使用简单,方便 容易上手,不支持高版本excel
NULL 博文链接:https://huhongyu.iteye.com/blog/1844333
NULL 博文链接:https://wikimo.iteye.com/blog/453702
在jsp中用Java读取Excel中的数据,以便把该数据写入数据库或jsp页面,对Excel导入很有帮助