//package cn.wisenergy.common.utils; // // //import org.apache.commons.lang3.StringUtils; //import org.apache.poi.hssf.usermodel.HSSFDataFormat; //import org.apache.poi.hssf.usermodel.HSSFDateUtil; //import org.apache.poi.hssf.usermodel.HSSFWorkbook; //import org.apache.poi.ss.usermodel.*; //import org.apache.poi.xssf.usermodel.XSSFWorkbook; //import org.apache.xmlbeans.impl.piccolo.io.FileFormatException; //import org.springframework.web.multipart.MultipartFile; // //import java.io.FileInputStream; //import java.io.FileNotFoundException; //import java.io.IOException; //import java.io.InputStream; //import java.text.DecimalFormat; //import java.text.SimpleDateFormat; //import java.util.ArrayList; //import java.util.Date; //import java.util.List; // //public class ExcelUtils { // // // private static final String EXTENSION_XLS = "xls"; // private static final String EXTENSION_XLSX = "xlsx"; // // // /** // * 判断EXCEL版本 // * // * @param in // * @param filename // * @return // * @throws IOException // */ // public static Workbook getWorkbook(InputStream in, String filename) throws IOException { // Workbook wb = null; // if (filename.endsWith(EXTENSION_XLS)) { // wb = new HSSFWorkbook(in);//Excel 2003 // } else if (filename.endsWith(EXTENSION_XLSX)) { // wb = new XSSFWorkbook(in);//Excel 2007 // } // return wb; // } // // // /** // * 文件校验是否是excel // * // * @param filePath // * @throws FileNotFoundException // * @throws FileFormatException // */ // public static void preReadCheck(String fileName) throws FileNotFoundException, // FileFormatException { // // 常规检查 // if (StringUtils.isBlank(fileName)) { // throw new FileNotFoundException("传入的文件不存在:" + fileName); // } // // if (!fileName.endsWith(EXTENSION_XLS) && !fileName.endsWith(EXTENSION_XLSX)) { // throw new FileFormatException("传入的文件不是excel"); // } // } // // // /** // * 读取EXCEL // * // * @param filePath // * @throws FileNotFoundException // * @throws FileFormatException // */ // public static List<List<String>> readExcel(MultipartFile file) throws FileNotFoundException, FileFormatException { // // 检查 // preReadCheck(file.getOriginalFilename()); // // 获取workbook对象 // Workbook workbook = null; // /*InputStream is = new FileInputStream(filePath);*/ // List<List<String>> result = new ArrayList<List<String>>(); // try { // workbook = getWorkbook(file.getInputStream(), file.getOriginalFilename()); // // workbook = WorkbookFactory.create(is); // // int sheetCount = workbook.getNumberOfSheets(); //Sheet的数量 // // 读文件 一个sheet一个sheet地读取 // for (int numSheet = 0; numSheet < sheetCount; numSheet++) { // Sheet sheet = workbook.getSheetAt(numSheet); // if (sheet == null) { // continue; // } // // int firstRowIndex = sheet.getFirstRowNum(); // int lastRowIndex = sheet.getLastRowNum(); // // if (firstRowIndex != lastRowIndex && lastRowIndex != 0) { // // // 读取数据行 // for (int rowIndex = firstRowIndex + 1; rowIndex <= lastRowIndex; rowIndex++) { // Row currentRow = sheet.getRow(rowIndex);// 当前行 // int firstColumnIndex = currentRow.getFirstCellNum(); // 首列 // int lastColumnIndex = currentRow.getLastCellNum();// 最后一列 // List<String> rowList = new ArrayList<String>(); // for (int columnIndex = firstColumnIndex; columnIndex < lastColumnIndex; columnIndex++) { // Cell currentCell = currentRow.getCell(columnIndex);// 当前单元格 // // String currentCellValue = getCellValue(currentCell, true);// 当前单元格的值 // rowList.add(currentCellValue); // } // // //行为空的不读 // Boolean flag = false; // for (String str : rowList) { // if (!StringUtils.isBlank(str)) { // flag = true; // break; // } // } // if (flag) { // result.add(rowList); // } // } // } // // } // } catch (Exception e) { // e.printStackTrace(); // } finally { // } // return result; // } // // public static List<List<String>> readInlandCompare(String filePath, Integer startSheet, Integer endSheet) throws FileNotFoundException, FileFormatException { // // 检查 // preReadCheck(filePath); // // 获取workbook对象 // Workbook workbook = null; // InputStream is = new FileInputStream(filePath); // List<List<String>> result = new ArrayList<List<String>>(); // try { // workbook = getWorkbook(is, filePath); // // workbook = WorkbookFactory.create(is); // // int sheetCount = workbook.getNumberOfSheets(); //Sheet的数量 // // 读文件 一个sheet一个sheet地读取 // for (int numSheet = startSheet; numSheet < endSheet; numSheet++) { // Sheet sheet = workbook.getSheetAt(numSheet); // if (sheet == null) { // continue; // } // // int firstRowIndex = sheet.getFirstRowNum(); // int lastRowIndex = sheet.getLastRowNum(); // // if (firstRowIndex != lastRowIndex && lastRowIndex != 0) { // // // 读取数据行 // for (int rowIndex = firstRowIndex + 1; rowIndex <= lastRowIndex; rowIndex++) { // Row currentRow = sheet.getRow(rowIndex);// 当前行 // int firstColumnIndex = currentRow.getFirstCellNum(); // 首列 // int lastColumnIndex = currentRow.getLastCellNum();// 最后一列 // List<String> rowList = new ArrayList<String>(); // for (int columnIndex = firstColumnIndex; columnIndex < lastColumnIndex; columnIndex++) { // Cell currentCell = currentRow.getCell(columnIndex);// 当前单元格 // // String currentCellValue = getCellValue(currentCell, true);// 当前单元格的值 // rowList.add(currentCellValue); // } // //行为空的不读 // Boolean flag = false; // for (String str : rowList) { // if (!StringUtils.isBlank(str)) { // flag = true; // break; // } // } // if (flag) { // result.add(rowList); // } // } // } // // } // } catch (Exception e) { // e.printStackTrace(); // } finally { // } // return result; // } // // /** // * 取单元格的值 // * // * @param cell 单元格对象 // * @param treatAsStr 为true时,当做文本来取值 (取到的是文本,不会把“1”取成“1.0”) // * @return // */ // public static String getCellValue(Cell cell, boolean treatAsStr) { // if (cell == null) { // return ""; // } // // /* if (treatAsStr) { // // 虽然excel中设置的都是文本,但是数字文本还被读错,如“1”取成“1.0” // // 加上下面这句,临时把它当做文本来读取 // cell.setCellType(Cell.CELL_TYPE_STRING); // }*/ // //SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); // // String cellValue = null; // int cellType = cell.getCellType(); // switch (cellType) { // case Cell.CELL_TYPE_STRING: // 文本 // cellValue = cell.getStringCellValue(); // break; // case Cell.CELL_TYPE_NUMERIC: // 数字、日期 // if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式 // SimpleDateFormat sdf = null; // if (cell.getCellStyle().getDataFormat() == HSSFDataFormat // .getBuiltinFormat("h:mm")) { // sdf = new SimpleDateFormat("HH:mm:ss"); // } else {// 日期 // sdf = new SimpleDateFormat("yyyy-MM-dd"); // } // Date date = cell.getDateCellValue(); // return sdf.format(date); // } else if (cell.getCellStyle().getDataFormat() == 58) { // // 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58) // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // double value = cell.getNumericCellValue(); // Date date = org.apache.poi.ss.usermodel.DateUtil // .getJavaDate(value); // return sdf.format(date); // } else { // double value = cell.getNumericCellValue(); // CellStyle style = cell.getCellStyle(); // DecimalFormat format = new DecimalFormat(); // String temp = style.getDataFormatString(); // // 单元格设置成常规 // if (temp.equals("General")) { // format.applyPattern("#"); // } // return format.format(value); // } // // case Cell.CELL_TYPE_BOOLEAN: // 布尔型 // cellValue = String.valueOf(cell.getBooleanCellValue()); // break; // case Cell.CELL_TYPE_BLANK: // 空白 // cellValue = cell.getStringCellValue(); // break; // case Cell.CELL_TYPE_ERROR: // 错误 // cellValue = "错误"; // break; // case Cell.CELL_TYPE_FORMULA: // 公式 // /* try { // cellValue = cell.getStringCellValue(); // } catch (IllegalStateException e) { // cellValue = String.valueOf(cell.getNumericCellValue()); // }*/ // try { // cellValue = String.valueOf(cell.getNumericCellValue()); // } catch (IllegalStateException e) { // cellValue = String.valueOf(cell.getRichStringCellValue()); // } // break; // default: // cellValue = "错误"; // } // return cellValue; // } // // //}