导入Execl表格到数据库
2016-12-07 09:54
113 查看
在spring配置文件中配置 XML
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="maxUploadSize" value="10000000" />
</bean>
需要导入一个xmlbeans-2.3.0包
(一) html页面代码
<div id="wenjian" style="float: left">
<form id="form1" action="inputIllegalbaseData.html" method="post" enctype="multipart/form-data">//用form表单post方法上传,定义enctype请求数据类型
<input type="file" name="file"/> //读取文件
<input type="submit" id="tijiao" value="开始上传"/> //定义一个上传按钮
</form>
</div>
(二) 接受类
@RequestMapping(value="inputIllegalbaseData")
@ResponseBody
public String inputIllegalbaseData(@RequestParam("file") CommonsMultipartFile file){
servise.inputIllegalbaseData(file);
return null;
}
(三)服务类
定义一个接受方法
public String inputIllegalbaseData(CommonsMultipartFile file) {
String myFileName = file.getOriginalFilename(); //读取文件名字
int point = myFileName.lastIndexOf(".");
String hzm = myFileName.substring(point);//解析后缀
if(".xls.xlsx".indexOf(hzm) == -1) { //先判断文件是否是execl类型
return "文件类型不是execl格式";
}
//重命名上传后的文件名
String path = request.getServletContext().getRealPath("upload") +"/" ;
myFileName=newName(myFileName);//重命名文件名
File localFile = new File(path);
if(!localFile.exists()){//如果文件路径不存在就创建一个
localFile.mkdir();
}
File filea=new File(path,myFileName);//根据路径和文件名创新一个文件
try {
file.transferTo(filea); //把文件写入tomcat临时路径下
List<IllegalBasicData> list = getDataFromExcel(path+myFileName); //调用下面的 方法,读取文件中的内容
//注意:要先把文件读取出来临时存储后才能用poi读取文件
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
///poi读取临时路径下的文件
public List<IllegalBasicData> getDataFromExcel(String filePath)
{
FileInputStream fis =null;
Workbook wookbook = null;
List<IllegalBasicData> list = new ArrayList<IllegalBasicData>();
try
{
//获取一个绝对地址的流
fis = new FileInputStream(new File(filePath));
if(filePath.endsWith(".xls"))//2003版本的excel,用.xls结尾
{
wookbook = new HSSFWorkbook(fis);
}
b69a
else if (filePath.endsWith(".xlsx")) //2007版本的excel,用.xlsx结尾
{
wookbook = new XSSFWorkbook(fis);//得到工作簿
}
}
catch(Exception e)
{
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//得到一个工作表
Sheet sheet = wookbook.getSheetAt(0);
//获得表头
// Row rowHead = sheet.getRow(0);
// //判断表头是否正确
// if(rowHead.getPhysicalNumberOfCells() != 2)
// {
// System.out.println("表头的数量不对!");
// }
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
//要获得属性
String name = "";
String latitude = "";
//获得所有数据
for(int i = 2 ; i <= totalRowNum ; i++)
{
IllegalBasicData ibd=new IllegalBasicData();
//获得第i行对象
Row row = sheet.getRow(i);
//获得获得第i行第0列的 String类型对象
Cell cell = row.getCell((short)0);
ibd.setJcardid(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)1);
ibd.setUsername(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)2);
ibd.setUcardid(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)3);
ibd.setRegisterDomicie(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)4);
ibd.setJtype(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)5);
ibd.setFullMarkDate(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)6);
ibd.setPhylExanDate(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)7);
ibd.setScore(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)8);
ibd.setState(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)9);
ibd.setPhone(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)10);
ibd.setAddress(cell.getStringCellValue().toString().trim());
list.add(ibd);
}
return list;
}
/**
* 重命名上传文件名
*
* @param srcName
* 上传文件的文件名
* @return 重命名后的文件名
*/
public String newName(String srcName) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String ext = srcName.substring(srcName.lastIndexOf("."));//后缀
String dt = sdf.format(new java.util.Date());
String rd = Math.round(Math.random() * 900) + 100 + "";//随机数
// return dt + rd +ext;//看不到原来的文件名字
int wz=srcName.lastIndexOf(".");
String mz="";
if(wz==-1){
mz=srcName;
}else
{
mz=srcName.substring(0,wz);
}
// return dt + rd +ext;
return mz+"_"+dt + rd +ext;
}
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="maxUploadSize" value="10000000" />
</bean>
需要导入一个xmlbeans-2.3.0包
(一) html页面代码
<div id="wenjian" style="float: left">
<form id="form1" action="inputIllegalbaseData.html" method="post" enctype="multipart/form-data">//用form表单post方法上传,定义enctype请求数据类型
<input type="file" name="file"/> //读取文件
<input type="submit" id="tijiao" value="开始上传"/> //定义一个上传按钮
</form>
</div>
(二) 接受类
@RequestMapping(value="inputIllegalbaseData")
@ResponseBody
public String inputIllegalbaseData(@RequestParam("file") CommonsMultipartFile file){
servise.inputIllegalbaseData(file);
return null;
}
(三)服务类
定义一个接受方法
public String inputIllegalbaseData(CommonsMultipartFile file) {
String myFileName = file.getOriginalFilename(); //读取文件名字
int point = myFileName.lastIndexOf(".");
String hzm = myFileName.substring(point);//解析后缀
if(".xls.xlsx".indexOf(hzm) == -1) { //先判断文件是否是execl类型
return "文件类型不是execl格式";
}
//重命名上传后的文件名
String path = request.getServletContext().getRealPath("upload") +"/" ;
myFileName=newName(myFileName);//重命名文件名
File localFile = new File(path);
if(!localFile.exists()){//如果文件路径不存在就创建一个
localFile.mkdir();
}
File filea=new File(path,myFileName);//根据路径和文件名创新一个文件
try {
file.transferTo(filea); //把文件写入tomcat临时路径下
List<IllegalBasicData> list = getDataFromExcel(path+myFileName); //调用下面的 方法,读取文件中的内容
//注意:要先把文件读取出来临时存储后才能用poi读取文件
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
///poi读取临时路径下的文件
public List<IllegalBasicData> getDataFromExcel(String filePath)
{
FileInputStream fis =null;
Workbook wookbook = null;
List<IllegalBasicData> list = new ArrayList<IllegalBasicData>();
try
{
//获取一个绝对地址的流
fis = new FileInputStream(new File(filePath));
if(filePath.endsWith(".xls"))//2003版本的excel,用.xls结尾
{
wookbook = new HSSFWorkbook(fis);
}
b69a
else if (filePath.endsWith(".xlsx")) //2007版本的excel,用.xlsx结尾
{
wookbook = new XSSFWorkbook(fis);//得到工作簿
}
}
catch(Exception e)
{
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//得到一个工作表
Sheet sheet = wookbook.getSheetAt(0);
//获得表头
// Row rowHead = sheet.getRow(0);
// //判断表头是否正确
// if(rowHead.getPhysicalNumberOfCells() != 2)
// {
// System.out.println("表头的数量不对!");
// }
//获得数据的总行数
int totalRowNum = sheet.getLastRowNum();
//要获得属性
String name = "";
String latitude = "";
//获得所有数据
for(int i = 2 ; i <= totalRowNum ; i++)
{
IllegalBasicData ibd=new IllegalBasicData();
//获得第i行对象
Row row = sheet.getRow(i);
//获得获得第i行第0列的 String类型对象
Cell cell = row.getCell((short)0);
ibd.setJcardid(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)1);
ibd.setUsername(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)2);
ibd.setUcardid(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)3);
ibd.setRegisterDomicie(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)4);
ibd.setJtype(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)5);
ibd.setFullMarkDate(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)6);
ibd.setPhylExanDate(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)7);
ibd.setScore(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)8);
ibd.setState(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)9);
ibd.setPhone(cell.getStringCellValue().toString().trim());
cell = row.getCell((short)10);
ibd.setAddress(cell.getStringCellValue().toString().trim());
list.add(ibd);
}
return list;
}
/**
* 重命名上传文件名
*
* @param srcName
* 上传文件的文件名
* @return 重命名后的文件名
*/
public String newName(String srcName) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String ext = srcName.substring(srcName.lastIndexOf("."));//后缀
String dt = sdf.format(new java.util.Date());
String rd = Math.round(Math.random() * 900) + 100 + "";//随机数
// return dt + rd +ext;//看不到原来的文件名字
int wz=srcName.lastIndexOf(".");
String mz="";
if(wz==-1){
mz=srcName;
}else
{
mz=srcName.substring(0,wz);
}
// return dt + rd +ext;
return mz+"_"+dt + rd +ext;
}
相关文章推荐
- 电子表格数据导入数据库和数据库下载数据到excel PHP代码phpexecl
- EXECL,文本文件导入数据库的程序!
- C# 或Asp.Net 将excel表格导入数据库 ····················
- 将execl文件里表中的纪录导入或者追加到数据库中 .
- C# 或Asp.Net 将excel表格导入数据库
- 将数据库中的数据下载成表格---导入poi jar包
- 将execl文件里表中的纪录导入或者追加到数据库中
- MySQL实现文本文件导入数据库以及将表格导出到文本文件
- Execl数据导入数据库
- 通过OLEDB将execl的数据导入数据库
- ASP.NET下将Excel表格中的数据规则的导入数据库思路分析及实现
- 将execl文件里表中的纪录导入或者追加到数据库中
- 存储过程将.txt.xls文件数据导入数据库表格
- C# 或Asp.Net 将excel表格导入数据库
- ASP.NET读取(导入)Execl.[献给依然是菜鸟的我们](类似数据库的方式)
- 将excel表格导入数据库
- 存储过程将.txt.xls文件数据导入数据库表格
- C#解决从含身份证号码的Excel表格导入数据库的问题
- Excel表格导入并把字段导入到相应的数据库中。。。。
- MySql学习很好的东西 表格数据导入数据库