Excel数据批量导入到数据库2
1.导包(共3个)
2.jsp
<s:form action="ReadExcel.action" method="post" enctype="multipart/form-data">
<s:file name="file" ></s:file>
<s:submit></s:submit>
</s:form>
3.action代码
package com.chao.action; import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List; import org.apache.commons.io.FileUtils;
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; import com.chao.db.Students;
import com.chao.service.ActionManager;
import com.opensymphony.xwork2.ActionSupport; public class ReadExcel extends ActionSupport {
/**
*
*/
ActionManager mgr;
private static final long serialVersionUID = 1L;
File file;
String Excel_Path;
String upload;
private String fileFileName;
private String fileContentType;
Students students;
List<Students> studentslist=new ArrayList<Students>(); public ActionManager getMgr() {
return mgr;
} public void setMgr(ActionManager mgr) {
this.mgr = mgr;
} public File getFile() {
return file;
} public void setFile(File file) {
this.file = file;
} public String getFileFileName() {
return fileFileName;
} public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
} public String getFileContentType() {
return fileContentType;
} public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
} public String getExcel_Path() {
return Excel_Path;
} public void setExcel_Path(String excel_Path) {
Excel_Path = excel_Path;
} public Students getStudents() {
return students;
} public void setStudents(Students students) {
this.students = students;
} public List<Students> getStudentslist() {
return studentslist;
} public void setStudentslist(List<Students> studentslist) {
this.studentslist = studentslist;
} public String execute() throws Exception{ try{
if(!fileContentType.toString().equals("application/vnd.ms-excel")){//上传文件格式只能为excel
return ERROR;
}
File excel=new File(ServletActionContext.getServletContext().getRealPath("upload"));
if(!excel.exists()){
excel.mkdir();
}
FileUtils.copyFile(file,new File(excel+"\\"+fileFileName));
FileUtils.copyFile(file,new File(excel,fileFileName)); //读取excel
InputStream is = new FileInputStream(file);
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
students=new Students();
//遍历sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
//遍历每个行
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow != null) {
HSSFCell number = hssfRow.getCell(0);
HSSFCell password = hssfRow.getCell(1);
HSSFCell name = hssfRow.getCell(2);
HSSFCell sex = hssfRow.getCell(3);
HSSFCell academy = hssfRow.getCell(4);
HSSFCell major = hssfRow.getCell(5);
HSSFCell classs = hssfRow.getCell(6);
HSSFCell grade = hssfRow.getCell(7);
//System.out.println(number+" "+password+" "+name+" "+sex+" "+academy+major+classs+grade);
students.setNumber(number.toString());
students.setPassword(password.toString());
students.setName(name.toString());
students.setSex(sex.toString());
students.setAcademy(academy.toString());
students.setMajor(major.toString());
students.setClasss(classs.toString());
students.setGrade(grade.toString());
//System.out.println(students.getNumber()+" "+students.getPassword()+" "+students.getName()+" "+students.getSex()+" "+students.getAcademy()+students.getMajor()+students.getClasss()+students.getGrade());
mgr.Save(students);
System.out.println(number+" "+name+" "+"插入成功");
}
}
}
FileUtils.deleteDirectory(new File(ServletActionContext.getServletContext().getRealPath("upload"))); //删除文件夹
return SUCCESS;
}catch (Exception e) {
// TODO: handle exception
System.out.print(e);
FileUtils.deleteDirectory(new File(ServletActionContext.getServletContext().getRealPath("upload"))); //删除文件夹
return SUCCESS;
} } }
Excel数据批量导入到数据库2的更多相关文章
- Excel数据批量导入到数据库
1.今天做批量导入网上找了个例子,改了改,运行起来了.用POI实现Excel的读取,需要jar包. 2.ReadExcel.java读取数据 /** * */ package com.b510.exc ...
- Java实现Excel数据批量导入数据库
Java实现Excel数据批量导入数据库 概述: 这个小工具类是工作中的一个小插曲哦,因为提数的时候需要跨数据库导数... 有的是需要从oracle导入mysql ,有的是从mysql导入oracle ...
- 使用PHPExcel实现数据批量导入到数据库
此例子只使用execel2003的.xls文档,若使用的是其他版本,可以保存格式为“Execel 97-2003 工作簿(*.xls)”即.xls文件类型即可! 功能说明:只能上传Excel2003类 ...
- Java实现数据批量导入mysql数据库
本文完全照搬别人的. 原文标题:Java实现数据批量导入数据库(优化速度-2种方法) 原文地址:https://blog.csdn.net/qy20115549/article/details/526 ...
- 关于Excel数据批量导入数据库的案例
写这个案例主要是感觉这个功能挺实用,很多地方会用得到的,废话就不多说了,直接上对应的源码. 这个案例我运用的是Winform窗体程序实现数据的导入. 首先是数据库的登陆界面如下: 源码如下: usin ...
- ASP.NET MVC NPOI导入Excel DataTable批量导入到数据库
使用NPOI导入Excel 首先在MVC项目中导入NPOI 查询NPOI安装,排序依据,选择:最高下载量,选择第一个. 在控制器中创建ExcelController 在Index视图中写入代码: @u ...
- C#将Excel数据表导入SQL数据库的两种方法(转)
最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...
- C#将Excel数据表导入SQL数据库的两种方法
最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...
- 使用python,将excel数据批量导入数据库
这是上一篇文章的优化版本,相较于一条一条的执行sql语句,本文中,将excel中所有的数据先写到list列表中 在通过函数 cursor.executemany(sql, list) 一次性写入到数据 ...
随机推荐
- java String 详解
1.java语言的字符串序列是通过字符串类实现的.java提供了3个字符串类:String类.StringBuilder类和StringBuffer类.String类是不变字符串,StringBuff ...
- 机器学习实战4:Adaboost提升:病马实例+非均衡分类问题
Adaboost提升算法是机器学习中很好用的两个算法之一,另一个是SVM支持向量机:机器学习面试中也会经常提问到Adaboost的一些原理:另外本文还介绍了一下非平衡分类问题的解决方案,这个问题在面试 ...
- shell-脚本入门【转】
转自:http://blog.csdn.net/gexiaobaohelloworld/article/details/7973846 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?) ...
- RabbitMQ高可用方案总结
RabbitMQ的集群方案有以下几种: 1.普通的集群 exchange,buindling再所有的节点上都会保存一份,但是queue只会存储在其中的一个节点上,但是所有的节点都会存储一份queue的 ...
- 自定义CollectionViewLayout
转自answer-huang的博客 原文出自:Custom Collection View Layouts UICollectionView在iOS6中第一次被介绍,也是UIKit视图类中的一颗 ...
- ubuntu vim8.0源码安装
安装篇 从https://github.com/vim/vim下载相应zip源码文件,利用unzip vim-master.zip 命令解压到当前用户目录,即~: 解压后进入vim的src目录,首先, ...
- IE兼容性的注意点
IE会将注释节点实现为元素,所以在IE中调用getElementsByTagName里面会包含注释节点,这个通常是不应该的 getElementById的参数在IE8及较低的版本不区分大小写 IE7及 ...
- Cardboard开发教程:使用Unity制作Cardboard全景图片浏览器
这两年,虚拟现实(VR)领域很火,很多人认为这将会是下一个手机般改变人们生活的技术.目前全球最领先的还是Facebook旗下的Oculus,HTC VIVE,以及最流行的Cardboard.国内多家厂 ...
- item布局里有button之类的子控件时,会截获焦点
需要以上问题时,网上查了很多,结果都是使用android:descendantFocusability属性,设为blocksDescendants就ok了,(具体不详叙述) 可是我给item的根布局设 ...
- eclipse最有用快捷键整理
在网上搜eclipse快捷键,可以搜出一大堆,大多罗列了n多的快捷键,估计大部分人看了以后都会头大的,我也头大,不过我一一尝试了一遍,整理出了eclipse最常用最有用,写代码必须用到的一些快捷键,大 ...