Java读取excel 支持xls 和 xlsx格式

1.工具类
public class InExcelTool {

//根据指定位置单独读取一个
public static String getContent(String file, int page, int i, int j){
String s = null;
try {
//解析
org.apache.poi.ss.usermodel.Workbook workbook = null;
NumberFormat nf = NumberFormat.getInstance();
//文件后缀
String extString = file.substring(file.lastIndexOf("."));
InputStream is = new FileInputStream(file);
if(".xls".equals(extString)){
workbook = new HSSFWorkbook(is);
Sheet sheet = workbook.getSheetAt(page); //选择sheet页
HSSFRow row = (HSSFRow) sheet.getRow(i);
HSSFCell data = row.getCell(j);
s = String.valueOf(data);
if (s.lastIndexOf(".0") != -1) {
s = s.substring(0, s.indexOf("."));
}

}else if(".xlsx".equals(extString)){
workbook = new XSSFWorkbook(is);
Sheet sheet = (Sheet) workbook.getSheetAt(page); //选择sheet页
XSSFRow row = (XSSFRow) sheet.getRow(i);
XSSFCell data = row.getCell(j);
s = String.valueOf(data);
}else{
return "文件格式不符!";
}

}catch (Exception e){
e.printStackTrace();
}
return s;
}
}

2.调用

 @RequestMapping("UpdateSocialCircleExcel")
String UpdateSocialCircleExcel(@RequestParam("file") MultipartFile file){
try {

//获取当前系统时间
Date date = new Date();
//转换为中文时间
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy"+"年"+"MM"+"月"+"dd"+"日"+"hh"+"时"+"mm"+"分"+"ss"+"秒-");
// 获取文件的名字
String fileName = file.getOriginalFilename();
//拼接文件名
String FileSyetemTime = dateFormat.format(date)+fileName;
// 指定文件存储路径 File.separator 代表/或者\ 解决跨平台 / \ 的问题 跨平台
//指定存放位置
String destFileName = "C:" + File.separator + "Users" + File.separator+ "Public" + File.separator + "imports" + File.separator+ FileSyetemTime;
//将文件创建在本地
File pinjie = new File(destFileName); //文件的路径在文件名拼接的结果
String destFile = pinjie+"";
file.transferTo(pinjie); //创建添加
       System.out.println(InExcelTool.getContent(destFile, 0, 2, 1));
    }
}
注:以上内容仅供个人学习记录使用,如有问题,请慎用!

猜你喜欢

转载自www.cnblogs.com/itxiaoxia/p/12090194.html