1.需要jar包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
2创建controller类
通过MultipartFile 接收上传的excel文件
@RequestMapping(value="upload",method=RequestMethod.POST)
@ResponseBody
public boolean upload(HttpServletRequest request,
@RequestParam("file") MultipartFile file) throws Exception {
//如果文件不为空,写入上传路径
if(!file.isEmpty()) {
return importService.ImportEexlService(file);
}else {
return false;
}
}
3创建service类
public boolean ImportEexlService(MultipartFile file){
try {
//解析xlsx后缀的excel文件 xls后缀的暂时没写
readXlsx(file.getInputStream());} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
//创建方法 解析excel文件 保存到数据库
public void readXlsx(InputStream inputStream ) throws IOException{
//XSSFWorkbook 需要一个inputStream流 在上面我们已经把file转成了流所以现在直接用就可以了
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream);XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
String comcode=null;
String comname=null;
String ck_rank=null;
String ck_score=null;
String fw_rank=null;
String fw_score=null;
//获取第一个Sheet 遍历获取每一行数据
for(int rowNum = 2; rowNum <= xssfSheet.getLastRowNum(); rowNum++ ){
//从第二行开始遍历
//取每一行每一列的值
XSSFRow xssfRow = xssfSheet.getRow(rowNum);
//取第一行第一个格的值
comname=getValue(xssfRow.getCell(1));
ck_rank=getValue(xssfRow.getCell(2));
ck_score=getValue(xssfRow.getCell(3));
fw_rank=getValue(xssfRow.getCell(4));
fw_score=getValue(xssfRow.getCell(5));
//把获取到的数据直接插入到数据库
String sql=" insert into t_car_service(id,comcode,comname,ck_rank,ck_score,fw_rank,fw_score,create_date) "+ " values('"+UUID.randomUUID().toString()+"','"+comcode+"','"+comname+"','"+ck_rank+"','"+ck_score+"','"+fw_rank+"','"+fw_score+"',SYSDATE) ";
importDao.importEexlDao(sql);
}
}
完结
本文为自己做项目亲自总结
不懂请下方留言
转载请标明地址
导出的话过几天会更新