`
everlxq
  • 浏览: 108753 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

文件的导入

 
阅读更多
jsp:
   <s:form action="import.action" method="post" enctype="multipart/form-data" theme="simple">
   <table border="1">
   <tr>
   <td>文件上传</td>
   </tr>
   <tr>
   <td>
   <s:file name="uploadFile" label="文件位置" size="80"/>
   </td>
   </tr>
   <tr><td>
   <s:submit value="submit"></s:submit>
   <s:reset value="reset"></s:reset>
   </td></tr>
   </table>
   </s:form>


action:上传文件的文件如果为uploadFile,那么文件名一定要为uploadFileFileName,也就是在文件后加入FileName,不然不能识别
package excl;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.struts2.ServletActionContext;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import test.BaseAction;
import test.User;

public class Import extends BaseAction{
	private static final String SUCCESS = "success";
	private File uploadFile=null;
	private String uploadFileFileName=null;
	
	
	public String loadRoleFile() {
	String directory="/upload/role";
	String targetDirectory=
		ServletActionContext.getServletContext().getRealPath(directory);
	String file=targetDirectory+"\\"+uploadFileFileName;
	//生成上传的文件对象
	File target = new File(file);
	//如果文件已经存在,则删除源文件
	if(target.exists()){
		target.delete();
	}
	System.out.println(uploadFile);
	System.out.println(uploadFileFileName);
	//复制file对象,实现上传
	try {
		FileUtils.copyFile(uploadFile,target);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} 
	
	List roleList = new ArrayList();
	
	try {
		
	FileInputStream fi = new FileInputStream(target);
	Workbook wb = new HSSFWorkbook(fi);
	Sheet sheet = wb.getSheetAt(0);
	int rowNum = sheet.getLastRowNum()+1;
	for(int i=1;i<rowNum;i++){
		User user = new User();
		Row row = sheet.getRow(i);
		int cellNum = row.getLastCellNum();
		for(int j=0;j<cellNum;j++){
			Cell cell = row.getCell(j);
			String cellValue=null;
			switch(cell.getCellType()){
			//判断 excel单元格内容的格式,并对其进行转换,以便插入数据库
			case 0:cellValue=String .valueOf((int)cell.getNumericCellValue());break;
			case 1 : cellValue = cell.getStringCellValue(); break;  
            case 2 : cellValue = String.valueOf(cell.getDateCellValue()); break;  
            case 3 : cellValue = ""; break;  
            case 4 : cellValue = String.valueOf(cell.getBooleanCellValue()); break;  
            case 5 : cellValue = String.valueOf(cell.getErrorCellValue()); break;  
			}
			 switch(j){//通过列数来判断对应插如的字段  
             case 0 : user.setId(Integer.parseInt(cellValue));break;  
             case 1 : user.setPassword(cellValue);break;  
             case 2 : user.setUsername(cellValue);break;  
         }
		}
		roleList.add(user);
	}
	} catch (IOException e) {
		e.printStackTrace();
	}
	Session session = this.getHibernateTemplate().getSessionFactory().openSession();
	Transaction tx = null;
	try {
		tx=null;
		tx=session.beginTransaction();
		if(roleList.size()>0){
			int roleNum=roleList.size();
			for(int i=0;i<roleNum;i++){
				session.save(roleList.get(i));
			}
			tx.commit();
		}
	} catch (HibernateException e) {
		tx.rollback();
		e.printStackTrace();
	}finally{
		session.close();
	}
	return SUCCESS;
	}

	public String getUploadFileFileName() {
		return uploadFileFileName;
	}


	public void setUploadFileFileName(String uploadFileFileName) {
		this.uploadFileFileName = uploadFileFileName;
	}


	
	public File getUploadFile() {
		return uploadFile;
	}
	public void setUploadFile(File uploadFile) {
		this.uploadFile = uploadFile;
	}
	
}



1:导入导出jar包的区别‘
2: private File uploadFile=null;
private String uploadFileFileName=null;

为什么不加“=null”值就传不进来

3:String directory="/upload/role";
String targetDirectory=
ServletActionContext.getServletContext().getRealPath(directory);

--》targetDirectory = D:\lxq\zhuanyi\jar+js\apache-tomcat-5.5.23\webapps\TinyBee\upload\role


分享到:
评论

相关推荐

    修复PE 文件导入表

    "PEConsole"可能是一个包含示例代码的VS2003工程,提供了修复PE文件导入表的功能。通过查看和学习这个工程,我们可以更深入地理解导入表的结构以及如何进行修复操作。在实际应用中,这样的工具对于调试、逆向工程、...

    Blender自定义模型文件导入插件

    "Blender自定义模型文件导入插件"就是为了解决这个问题而开发的,它允许用户导入两种特定格式的模型数据:txt和vbm。 首先,让我们深入了解一下这两个文件格式: 1. **txt** 文件:这种格式可能源自《3D游戏引擎...

    昆仑触摸屏工程文件导入方法

    ### 昆仑触摸屏工程文件导入方法详解 #### 一、引言 在现代工业自动化领域,触摸屏作为人机交互的重要组成部分,被广泛应用在各种设备控制与监测系统中。昆仑触摸屏作为一种高性能、易使用的触摸屏解决方案,在...

    PADS layout设计的pcb文件导入HFSS教程.docx

    PADS layout设计的pcb文件导入HFSS教程 PADS layout设计的pcb文件导入HFSS教程是指使用PADS layout设计的pcb文件直接导入HFSS进行仿真分析的方法。该方法无需使用第三方软件,只需使用PADS和HFSS两个软件。 第一步...

    SolidWorks 文件导入到SketchUp 方法

    4. **打开 SketchUp**:启动 SketchUp,确保你已安装了支持 DWG 文件导入的插件(如 DWG Importer)。如果没有,可以前往 SketchUp 插件库下载并安装。 5. **导入 DWG 文件**:在 SketchUp 中,选择“文件”&gt;“导入...

    c# + AO 将shp文件导入到GeoDatabase中

    "C# + AO 将SHP文件导入到GeoDatabase中" 该资源主要讲解了如何使用C#和AO(ArcObjects)将SHP文件导入到GeoDatabase中生成一个独立的要素类。 首先,需要了解AO(ArcObjects)是什么?AO是ESRI提供的一组软件开发...

    如何把.dmp文件导入oracle中

    ### 如何将 .dmp 文件导入 Oracle 数据库 在日常工作中,我们经常需要将数据从一个Oracle数据库迁移到另一个Oracle数据库。通常情况下,这可以通过使用Oracle的导出(exp)和导入(imp)工具来实现。本文将详细介绍...

    图层shp文件导入数据库工具

    本文将详细介绍如何使用特定的工具——"图层shp文件导入数据库工具",将其数据导入到Oracle数据库中,以及涉及的相关知识点。 首先,"图层shp文件导入数据库工具"是一个自编写的程序,能够帮助用户将.shp文件的数据...

    将shp文件导入到mysql的命令.rar

    1.安装mysql5.1略 2.安装geoserver2.3.1 略 3.准备shp文件shp2mysql_0_4.zip文件,里面有三个文件,将cygwin1.dll复制到window/system32或syswow64目录下。双击运行DOShere文件。...5.将sql文件导入到mysql中

    DBF文件导入ORALCE方法

    DBF文件导入ORACLE是一种常见的数据迁移操作,尤其当用户提供的数据源是FoxPro、dBase等格式时。DBF文件是一种基于Xbase结构的数据库文件,广泛用于早期的数据库管理系统中。在现代数据库系统如Oracle中,为了处理...

    全网首发!CSV文件导入MySQL数据库工具软件 CSVtoDB v1.0.zip

    CSV文件导入MySQL数据库工具软件 CSVtoDB v1.0.zip 因手头项目需要向MYSQL数据库导入大量的EXCEL数据。网上搜索了相关博客,受限于功能或者本人有一点点的小强迫,业余时间开发了本工具。 EXCEL导入到MYSQL有多种...

    mongodb数据库tsv文件导入.rar

    最后,这个压缩包中可能还包含了关于tsv文件导入的详细说明,建议仔细阅读这些指南,以确保正确无误地完成导入过程。在实际操作中,根据实际情况调整上述步骤,以满足你的具体需求。同时,保持对MongoDB官方文档的...

    纯前端:luckysheet在线编辑Excel导出,Excel文件导入

    《纯前端实现:Luckysheet在线编辑Excel及文件导入导出详解》 在现代Web应用中,处理Excel数据已经成为一种常见的需求,特别是在数据分析、报表制作等领域。本文将深入探讨一个纯前端解决方案——Luckysheet,它...

    Oracle导出的dmp格式文件导入到达梦的操作步骤

    ### Oracle DMP 文件导入达梦数据库的操作步骤 #### 一、DMP 文件导入到达梦数据库的操作步骤 **1. 创建达梦数据库中的表空间** 在达梦数据库中创建一个新的表空间,例如`RDP`: ```sql CREATE TABLESPACE "RDP...

    将文件导入到数据库中的方法

    本文主要介绍了将文件导入到数据库中的方法,特别是针对 Oracle 数据库的数据导入方法。文章首先介绍了 Sql*Loader 方法,它是 Oracle 数据库下数据导入的最重要的方法之一。接着介绍了使用专业的数据抽取工具,例如...

    本地excel文件导入到sql中

    在IT领域,将本地Excel文件导入到SQL数据库是一项常见的任务,尤其在数据分析、报表生成以及数据迁移等场景中。Excel的灵活性和易用性使其成为数据处理的首选工具,而SQL数据库则提供了强大的数据存储和查询能力。...

    文件导入的实现

    本文将深入探讨如何实现文件导入,结合给定的标题“文件导入的实现”和标签“源码”、“工具”,我们将围绕文件导入的原理、常用方法以及相关工具进行详细讲解。 一、文件导入的基本原理 文件导入通常涉及到读取...

    从SQL Server备份文件导入现存数据库

    从 SQL Server 备份文件导入现存数据库 从 SQL Server 备份文件导入现存数据库是数据库管理员经常遇到的问题。 SQL Server 本身有数据导入的操作,但如果要从一个备份的文件中导入数据,则要进行另外的操作。本文将...

    C#写的将csv文件导入至sql数据库,带存储过程的实例

    2. **创建SqlBulkCopy对象**:SqlBulkCopy类允许快速大量地将数据复制到SQL Server表中,非常适合处理大文件导入。 3. **读取CSV文件**:使用StreamReader逐行读取CSV文件。每行数据会被解析为多个字段,这些字段将...

    csv文件导入sqlserver 源码

    综上所述,这个“csv文件导入sqlserver 源码”应该是提供了以上所述的一种或多种方法,帮助用户方便、高效地将CSV数据批量导入到SQL Server数据库中。具体源码实现的细节,如如何处理数据错误、如何优化性能等,需要...

Global site tag (gtag.js) - Google Analytics