导入Execl表格到数据库
来源:互联网 发布:python爬取股票数据 编辑:程序博客网 时间:2024/05/18 21:11
在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);
}
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;
}
- 导入Execl表格到数据库
- PHP导入Execl表到数据库
- Execl数据导入数据库
- winform Execl数据 导入到数据库(SQL)
- Java做execl导入数据库
- excel表格导入到各类sql数据库
- Excel表格数据导入到SQLServer数据库
- Excel表格数据导入到SQLServer数据库
- excel表格数据导入到mysql数据库
- Excel表格数据导入到SQLServer数据库
- 将execl文件里表中的纪录导入或者追加到数据库中
- 将execl文件里表中的纪录导入或者追加到数据库中
- 将execl文件里表中的纪录导入或者追加到数据库中 .
- sql server 导入导出数据到execl
- execl导入到sql server中
- 查询数据集导入到Execl
- 将execl中的数据导入到mysql
- EXECL,文本文件导入数据库的程序!
- SpringMVC原理
- TensorFlow 实现Multilayer Perceptron
- cpp 8.5
- Java 线程面试题
- ObjectMapper相关
- 导入Execl表格到数据库
- 适配器模式和装饰模式
- 自动布局:JHAutoLayout
- cocos2dx 高性能高斯模糊(包含lua接口)
- ListView几个比较特别的属性
- Xcode7.3下如何分析线上(已通过AppStore审核)IOS应用的崩溃日志
- 面向对象编程
- redis 命令
- scala 序列化(反序列化)、File操作使用示例