79 lines
2.5 KiB
Java
79 lines
2.5 KiB
Java
![]() |
package com.ruoyi.common.utils;
|
|||
|
|
|||
|
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
|||
|
import org.apache.poi.ss.usermodel.Cell;
|
|||
|
|
|||
|
import java.text.DecimalFormat;
|
|||
|
import java.util.Date;
|
|||
|
|
|||
|
/**
|
|||
|
* 导入Excel工具类
|
|||
|
*/
|
|||
|
public class ExcelImportUtils {
|
|||
|
|
|||
|
/** 是否是2003的excel,返回true是2003Excel文件**/
|
|||
|
public static boolean isExcel2003(String filePath){
|
|||
|
return filePath.matches("^.+\\.(?i)(xls)$");
|
|||
|
}
|
|||
|
/** 是否是2007以上的excel,返回true是2007Excel文件**/
|
|||
|
public static boolean isExcel2007(String filePath){
|
|||
|
return filePath.matches("^.+\\.(?i)(xlsx)$");
|
|||
|
}
|
|||
|
/**
|
|||
|
* 验证EXCEL文件
|
|||
|
*
|
|||
|
* @param filePath
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public static boolean validateExcel(String filePath) {
|
|||
|
if (filePath == null || !(isExcel2003(filePath) || isExcel2007(filePath))) {
|
|||
|
return false;
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 获取单元格的值
|
|||
|
* @param cell
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public static String getCellValue(Cell cell) {
|
|||
|
String value = "";
|
|||
|
if (cell != null) {
|
|||
|
switch(cell.getCellTypeEnum()){
|
|||
|
case NUMERIC:// 数字
|
|||
|
value = cell.getNumericCellValue()+ " ";
|
|||
|
if(HSSFDateUtil.isCellDateFormatted(cell)){
|
|||
|
Date date = cell.getDateCellValue();
|
|||
|
if(date != null){
|
|||
|
value = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,date); // 日期格式化
|
|||
|
}else{
|
|||
|
value = "";
|
|||
|
}
|
|||
|
}else {
|
|||
|
// 解析cell时候 数字类型默认是double类型的 但是想要获取整数类型 需要格式化
|
|||
|
value = new DecimalFormat("0").format(cell.getNumericCellValue());
|
|||
|
}
|
|||
|
break;
|
|||
|
case STRING: // 字符串
|
|||
|
value = cell.getStringCellValue();
|
|||
|
break;
|
|||
|
case BOOLEAN: // Boolean类型
|
|||
|
value = cell.getBooleanCellValue()+"";
|
|||
|
break;
|
|||
|
case BLANK: // 空值
|
|||
|
value = "";
|
|||
|
break;
|
|||
|
case ERROR: // 错误类型
|
|||
|
value ="非法字符";
|
|||
|
break;
|
|||
|
default:
|
|||
|
value = "未知类型";
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
return value.trim();
|
|||
|
}
|
|||
|
}
|