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) 一次性写入到数据 ...
随机推荐
- UVA 10054 the necklace 欧拉回路
有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环. 可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路 首先判断是否 ...
- Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence 使用oracle11g插入数据时遇到这样一个问题: 1 --创建测试表-- 2 CREATE T ...
- iOS 图片轮播图(自动滚动)
iOS 图片轮播图(自动滚动) #import "DDViewController.h" #define DDImageCount 5 @interface DDViewContr ...
- 在centos7中安装Robot Framework
安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...
- yii2框架增删改查案例
//解除绑定蓝牙 //http://www.520m.com.cn/api/pet/remove-binding?healthy_id=72&pet_id=100477&access- ...
- QFile QDataStream QTextStream
#include <QCoreApplication> #include <QMap> #include <QFile> #include <QDir> ...
- [课程设计]Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)
Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...
- Git使用教程【转】
Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是 ...
- CSS样式基础二
一.列表 主要分为有序列表ol,无序列表ul <ul> <li></li> ... </ul> <ol> <li></li ...
- 20161014006 DataGridView Combobox 数据绑定与传值
//Combobox private void T_Form_CY_CBD_D_CurrentCellChanged(object sender, EventArgs e) ...