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();
|
||
}
|
||
}
|