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
分享到:
相关推荐
"PEConsole"可能是一个包含示例代码的VS2003工程,提供了修复PE文件导入表的功能。通过查看和学习这个工程,我们可以更深入地理解导入表的结构以及如何进行修复操作。在实际应用中,这样的工具对于调试、逆向工程、...
"Blender自定义模型文件导入插件"就是为了解决这个问题而开发的,它允许用户导入两种特定格式的模型数据:txt和vbm。 首先,让我们深入了解一下这两个文件格式: 1. **txt** 文件:这种格式可能源自《3D游戏引擎...
### 昆仑触摸屏工程文件导入方法详解 #### 一、引言 在现代工业自动化领域,触摸屏作为人机交互的重要组成部分,被广泛应用在各种设备控制与监测系统中。昆仑触摸屏作为一种高性能、易使用的触摸屏解决方案,在...
PADS layout设计的pcb文件导入HFSS教程 PADS layout设计的pcb文件导入HFSS教程是指使用PADS layout设计的pcb文件直接导入HFSS进行仿真分析的方法。该方法无需使用第三方软件,只需使用PADS和HFSS两个软件。 第一步...
4. **打开 SketchUp**:启动 SketchUp,确保你已安装了支持 DWG 文件导入的插件(如 DWG Importer)。如果没有,可以前往 SketchUp 插件库下载并安装。 5. **导入 DWG 文件**:在 SketchUp 中,选择“文件”>“导入...
"C# + AO 将SHP文件导入到GeoDatabase中" 该资源主要讲解了如何使用C#和AO(ArcObjects)将SHP文件导入到GeoDatabase中生成一个独立的要素类。 首先,需要了解AO(ArcObjects)是什么?AO是ESRI提供的一组软件开发...
### 如何将 .dmp 文件导入 Oracle 数据库 在日常工作中,我们经常需要将数据从一个Oracle数据库迁移到另一个Oracle数据库。通常情况下,这可以通过使用Oracle的导出(exp)和导入(imp)工具来实现。本文将详细介绍...
本文将详细介绍如何使用特定的工具——"图层shp文件导入数据库工具",将其数据导入到Oracle数据库中,以及涉及的相关知识点。 首先,"图层shp文件导入数据库工具"是一个自编写的程序,能够帮助用户将.shp文件的数据...
1.安装mysql5.1略 2.安装geoserver2.3.1 略 3.准备shp文件shp2mysql_0_4.zip文件,里面有三个文件,将cygwin1.dll复制到window/system32或syswow64目录下。双击运行DOShere文件。...5.将sql文件导入到mysql中
DBF文件导入ORACLE是一种常见的数据迁移操作,尤其当用户提供的数据源是FoxPro、dBase等格式时。DBF文件是一种基于Xbase结构的数据库文件,广泛用于早期的数据库管理系统中。在现代数据库系统如Oracle中,为了处理...
CSV文件导入MySQL数据库工具软件 CSVtoDB v1.0.zip 因手头项目需要向MYSQL数据库导入大量的EXCEL数据。网上搜索了相关博客,受限于功能或者本人有一点点的小强迫,业余时间开发了本工具。 EXCEL导入到MYSQL有多种...
最后,这个压缩包中可能还包含了关于tsv文件导入的详细说明,建议仔细阅读这些指南,以确保正确无误地完成导入过程。在实际操作中,根据实际情况调整上述步骤,以满足你的具体需求。同时,保持对MongoDB官方文档的...
《纯前端实现:Luckysheet在线编辑Excel及文件导入导出详解》 在现代Web应用中,处理Excel数据已经成为一种常见的需求,特别是在数据分析、报表制作等领域。本文将深入探讨一个纯前端解决方案——Luckysheet,它...
### Oracle DMP 文件导入达梦数据库的操作步骤 #### 一、DMP 文件导入到达梦数据库的操作步骤 **1. 创建达梦数据库中的表空间** 在达梦数据库中创建一个新的表空间,例如`RDP`: ```sql CREATE TABLESPACE "RDP...
本文主要介绍了将文件导入到数据库中的方法,特别是针对 Oracle 数据库的数据导入方法。文章首先介绍了 Sql*Loader 方法,它是 Oracle 数据库下数据导入的最重要的方法之一。接着介绍了使用专业的数据抽取工具,例如...
在IT领域,将本地Excel文件导入到SQL数据库是一项常见的任务,尤其在数据分析、报表生成以及数据迁移等场景中。Excel的灵活性和易用性使其成为数据处理的首选工具,而SQL数据库则提供了强大的数据存储和查询能力。...
本文将深入探讨如何实现文件导入,结合给定的标题“文件导入的实现”和标签“源码”、“工具”,我们将围绕文件导入的原理、常用方法以及相关工具进行详细讲解。 一、文件导入的基本原理 文件导入通常涉及到读取...
从 SQL Server 备份文件导入现存数据库 从 SQL Server 备份文件导入现存数据库是数据库管理员经常遇到的问题。 SQL Server 本身有数据导入的操作,但如果要从一个备份的文件中导入数据,则要进行另外的操作。本文将...
2. **创建SqlBulkCopy对象**:SqlBulkCopy类允许快速大量地将数据复制到SQL Server表中,非常适合处理大文件导入。 3. **读取CSV文件**:使用StreamReader逐行读取CSV文件。每行数据会被解析为多个字段,这些字段将...
综上所述,这个“csv文件导入sqlserver 源码”应该是提供了以上所述的一种或多种方法,帮助用户方便、高效地将CSV数据批量导入到SQL Server数据库中。具体源码实现的细节,如如何处理数据错误、如何优化性能等,需要...