`
qq630703545
  • 浏览: 2358 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

ssh2Excel导入

 
阅读更多

  导入功能只能支持 .xls 后缀的文件...功能不够强大..嘿嘿

 

已经处理了数字后面有.0的问题   导入poi的包就可以使用了

 

 

 

下面是主要功能:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts2.ServletActionContext;

public class ImportAction {
	private final int BUFFER_SIZE = 100;// 上传的字符流大小
	private File file;
	private String ext;
	private String savePath;
	private String fileFileName;
	private float percent = 0;
	private InputStream in = null;
	private List<String> all;

	private boolean copy(File src, File dst) {
		float completedSize = 0;
		float fileSize = 0;
		try {
			analytic(src);
			in = new BufferedInputStream(new FileInputStream(src));
			fileSize = in.available();
			byte[] buffer = new byte[BUFFER_SIZE];
			int len = 0;
			while ((len = in.read(buffer)) > 0) {
				completedSize += (long) len;
				percent = completedSize / fileSize * 100;
			}
		} catch (Exception e) {
			System.out.println(e);
		} finally {
			if (null != in) {
				try {
					in.close();
				} catch (IOException e) {
					System.out.println(e);
				}
			}
		}
		return true;
	}

	public String sumPre() {
		try {
			PrintWriter out = ServletActionContext.getResponse().getWriter();
			System.out.println(getFileFileName() + "                                             filename");
			String FileFileName2 = new String(getFileFileName().getBytes("utf-8"), "ISO8859-1");
			out.print(percent + ":" + FileFileName2);
		} catch (IOException e) {
			System.out.println(e);
		}
		return null;
	}

	@SuppressWarnings("unchecked")
	public void analytic(File is) {
		try {
			HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(is));
			HSSFSheet sheet = workbook.getSheetAt(0);
			all = new ArrayList<String>();
			for (int x = 0; x <= sheet.getLastRowNum(); x++) { //for循环获取所有数据
				HSSFRow row = sheet.getRow(x);
				Iterator cells = row.cellIterator();
				while (cells.hasNext()) {
					String value = "";
					HSSFCell cell = (HSSFCell) cells.next();
					switch (cell.getCellType()) { // 获取数据类型
					case HSSFCell.CELL_TYPE_NUMERIC: // 数字
						value = String.valueOf((int) cell.getNumericCellValue());//处理数字
						break;
					case HSSFCell.CELL_TYPE_STRING: // 字符串
						value = String.valueOf(cell.getStringCellValue()); // 字符串处理
						break;
					case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
						value = String.valueOf(cell.getBooleanCellValue()); // bool类型处理
						break;
					case HSSFCell.CELL_TYPE_FORMULA: // 公式
						value = String.valueOf(cell.getCellFormula()); // 公式处理
						break;

					}
					switch (((int) cell.getColumnIndex())) {//判断数据在哪列
					case 0:
						all.add("这是第1列的值  " + value);
						break;
					case 1:
						all.add("这是第2列的值  " + value);
						break;
					case 2:
						all.add("这是第3列的值  " + value);
						break;

					case 3:
						all.add("这是第4列的值  " + value);
						break;
					}
				}
			}
		} catch (Exception e) {
			System.out.println(e);
		}
	}

	public String upload() {
		try {
			File srcfile = this.getFile();// 依赖注入的方法取得文件域的对象
			String uploadPath = ServletActionContext.getServletContext().getRealPath("upload");// 上传路径
			ext = fileFileName.substring(fileFileName.lastIndexOf(".")).toLowerCase();// 取得后缀
			File dstFile = new File(uploadPath, fileFileName);
			copy(srcfile, dstFile);
		} catch (Exception e) {
			System.out.println(e);
		}

		return "success";

	}

	public File getFile() {
		return file;
	}

	public void setFile(File file) {
		this.file = file;
	}

	public String getExt() {
		return ext;
	}

	public String getSavePath() {
		return savePath;
	}

	public void setSavePath(String savePath) {
		this.savePath = savePath;
	}

	public String getFileFileName() {
		return fileFileName;
	}

	public void setFileFileName(String fileFileName) {
		this.fileFileName = fileFileName;
	}

	public void setExt(String ext) {
		this.ext = ext;
	}

	public List<String> getAll() {
		return all;
	}

	public void setAll(List<String> all) {
		this.all = all;
	}

}

 

 

下面是stuts配置文件:

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<constant name="struts.multipart.maxSize" value="61440000000"></constant>
	<package name="fileUpload" namespace="/" extends="struts-default">
		<action name="fileUpload" class="org.yzxdemo.Import.action.ImportAction"
			method="upload">
			<!-- 动态设置Action中的savePath属性的值 -->
			<param name="savePath">/upload</param>
			<result name="success">/filejd.jsp</result>
		</action>
		<action name="sumPre" class="org.yzxdemo.Import.action.ImportAction" method="sumPre">
		</action>
	</package>
</struts>

 

 

下面是页面代码 :

 

index.jsp:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">
	</head>
	<script type="text/javascript" src="js/jquery-1.6.2.min.js">
</script>
	<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	font-size: 14px;
}
-->
</style>
	<script type="text/javascript">
parent.$("#filehid").attr("value", ""); //主要是用来做验证的 
function aa() {
	var val = $("input[name=file]").val();//获取输入框的值
	var k = val.substring(val.lastIndexOf(".")).toLowerCase();//获取后缀名
	if (k != ".xls") {
		alert("请上传后缀名为xls的文件");
		return false;
	}
}
</script>
	<body>
		<br>
		<table width="454">
			<tr>
				<td width="91" align="right">
					文件路径:
				</td>
				<td width="351">
					<form name='aform1' method='post' action="fileUpload.action"
						enctype="multipart/form-data" onsubmit="return aa();">
						<input name='file' type='file' />
						<input type="submit" value="上传"  />
					</form>
				</td>
			</tr>
		</table>
	</body>
</html>

 

 

filejd.jsp主要是用来输出导入的值:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib  prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
  </head>
  
  <body>
  <table width="100%" height="21%">
	    <s:iterator value="all">
  	<tr height="20">
  	  <td width="100%" valign="top"><s:property/></td>
	  </tr>
  	   </s:iterator>
  	 </table>
</body>
</html>

 

 

 

分享到:
评论

相关推荐

    ssh整合poi导入导出Excel

    在本实例中,我们将探讨如何利用SSH框架与Apache POI库协同工作,实现Excel文件的导入和导出功能。Apache POI是一个开源项目,它允许Java应用程序读写Microsoft Office格式的文件,包括Excel。 首先,SSH框架中的...

    SSH2数据导入导出

    在这个"SSH2数据导入导出"的案例中,我们将探讨如何利用这些框架来实现Excel文件的数据导入与导出功能。 首先,Spring框架提供了依赖注入和面向切面编程的能力,使得应用程序的组件可以更加松耦合,易于测试和维护...

    SSH框架中关于EXCEL表格导入到MySQL数据库

    在这个特定的场景中,我们要探讨如何在SSH框架下将Excel表格数据导入到MySQL数据库。这个过程涉及到几个关键的技术点,包括文件读取、数据解析、数据库操作以及异常处理。 首先,我们需要使用Java API来读取Excel...

    ssh注解方式+poi实现Excel导入导出

    本人实际项目功能简化出来的小功能,由三大框架ssh构成,使用的是注解方式。项目中去除了连接数据库那一块,如需数据库操作,请进行相应修改。使用方式:直接用eclipse把项目导入进去,配置Tomcat7.0运行即可

    ssh+excel+poi

    标题中的“ssh+excel+poi”指的是一种在Java开发中结合使用Spring、Struts2和Hibernate(SSM框架)来处理Excel数据的技术。SSH是一个常见的企业级Java Web应用程序开发框架,而Excel处理则主要涉及Apache POI库。...

    简单的SSH三层架构+Ajax实现Google自动搜索极为相似版+直接Excel导入数据库

    2. 将Excel数据转换为与数据库表结构匹配的对象集合。 3. 使用Hibernate或JDBC将这些对象批量保存到数据库中,可能需要处理事务以确保数据的一致性。 **总结** 这个项目结合了SSH框架实现后台业务逻辑,使用Ajax...

    ssh 导入导出excel+百度富文本编辑器+highcharts

    标题中的“ssh 导入导出excel”涉及到SSH框架中处理Excel数据的能力。在实际项目中,我们经常需要从Excel文件中读取数据或者将数据导出到Excel文件,以便于数据交换和报表生成。在SSH框架下,可以使用Apache POI库来...

    SSH框架整合,包括发送邮件,excel文件的及文件上传下载等

    在SSH项目中,我们可以使用POI来读取、修改或创建Excel文件,这对于数据导入导出、报表生成等场景非常有用。 "文件上传下载"通常会涉及到Servlet API以及文件存储策略。在Struts2中,可以使用FileUpload ...

    ssh整合web导出excel案例

    在本文中,我们将探讨如何在SSH(Spring、Struts2、Hibernate)框架下整合实现Web应用导出Excel文件的功能。SSH是一个广泛使用的Java Web开发框架,它提供了强大的数据持久层、MVC架构以及依赖注入等功能。在这个...

    OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码)

    OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码) 借鉴 风中叶 老师的视频,写的文章,代码比较详实。 说了很多我的看法,和思考,做了充分的日志

    Struts2 poi动态导入导出Excel源码示例

    首先,让我们深入理解一下如何使用Struts2和POI来实现Excel的导入导出。 1. **Struts2的Action配置**: 在Struts2中,你需要创建一个Action类来处理用户请求。这个Action类会有一个方法,专门处理导入或导出Excel...

    ssh框架整合生成excel报表

    6. **项目发布与运行**:解压下载的安装包后,确保所有依赖库已正确导入,将项目部署到应用服务器(如Tomcat),启动服务器,访问`index.jsp`,系统应能按照预期展示或导出Excel报表。 7. **代码注解**:在实际开发...

    java实现导入导出Excel表

    本项目提供了一个整合了Spring、Hibernate和Struts2(简称SSH)三大框架的小型应用示例,利用Apache POI库来处理Excel文件。 首先,Apache POI是一个开源的Java库,专门用于读写Microsoft Office格式的文件,尤其是...

    struts2整合apache的jxl导入导出excel表格

    Struts2 框架与 Apache 的 JXL 库整合,可以方便地实现在 Java Web 应用中导入和导出 Excel 表格的功能。Apache JXL 是一个强大的 Java 库,专门用于读写 Microsoft Excel 文件,使得开发者无需依赖 Office API 就能...

    基于全注解的SSH2框架

    在这个基于全注解的SSH2框架中,我们将深入探讨如何利用注解来简化配置,提高开发效率,并结合日志配置、数据库操作及Excel导入导出来实现更为高效的应用程序。 **1. Spring框架中的注解** Spring框架的核心在于...

    excel文件导入mysql

    本主题将深入探讨如何将Excel文件导入MySQL数据库,同时结合了Java的POI库、Spring MVC、Struts2(SSH)、以及ExtJS框架。这些技术的组合为高效的数据导入提供了强大的支持。 首先,让我们了解一下Excel文件导入...

    MM.zip_FRS_ssh excel

    标题中的"MM.zip_FRS_ssh excel"表明这是一个与SSH框架、FRS(可能是File Reading and Sending,文件读取和发送)以及Excel操作相关的项目。描述中提到使用了SSH框架,这是Spring、Struts和Hibernate三个开源Java...

    ssh三大框架整合及导入导出下载功能大全

    数据的导入功能通常涉及读取外部文件(如CSV、Excel或XML),解析数据,然后通过Hibernate的API创建或更新数据库记录。导出功能则相反,它需要从数据库中查询数据,格式化为特定的文件格式,然后提供给用户下载。 ...

    将excel的数据导入到数据库中

    本文将详细讲解如何将Excel数据导入到Oracle数据库中,以及在这个过程中涉及的关键技术点。 首先,Excel是一种广泛使用的电子表格工具,它允许用户组织、计算和存储数据。而Oracle数据库则是一个强大的关系型数据库...

Global site tag (gtag.js) - Google Analytics