| | |
| | | import com.yuanchu.mom.service.*; |
| | | import com.yuanchu.mom.utils.*; |
| | | import com.yuanchu.mom.vo.*; |
| | | import org.apache.poi.ss.usermodel.CellValue; |
| | | import org.apache.poi.xssf.usermodel.XSSFCell; |
| | | import org.apache.poi.xssf.usermodel.XSSFRow; |
| | | import org.apache.poi.xssf.usermodel.XSSFSheet; |
| | | import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | //获取最后一行的num,即总行数。此处从0开始 |
| | | int maxRow = sheet.getLastRowNum(); |
| | | for (int row = 0; row <= maxRow; row++) { |
| | | XSSFRow xssfRow = sheet.getRow(row); |
| | | //获取最后单元格num,即总单元格数 ***注意:此处从1开始计数*** |
| | | int maxRol = sheet.getRow(row).getLastCellNum(); |
| | | StringBuilder aLine = new StringBuilder(); |
| | | for (int rol = 0; rol < maxRol; rol++) { |
| | | /*for (int rol = 0; rol < maxRol; rol++) { |
| | | aLine.append(sheet.getRow(row).getCell(rol)).append(","); |
| | | }*/ |
| | | for (int rol = 0; rol < maxRol; rol++) { |
| | | XSSFCell cell = xssfRow.getCell(rol); |
| | | if (cell == null) { |
| | | aLine.append(","); |
| | | } else { |
| | | switch (cell.getCellType()) { |
| | | case FORMULA: |
| | | // 计算公式并获取结果 |
| | | CellValue cellValue = xssfWorkbook.getCreationHelper().createFormulaEvaluator().evaluate(cell); |
| | | switch (cellValue.getCellType()) { |
| | | case NUMERIC: |
| | | String formattedValue = String.format("%.4f", cellValue.getNumberValue()); |
| | | aLine.append(formattedValue); |
| | | break; |
| | | case STRING: |
| | | aLine.append(cellValue.getStringValue()); |
| | | break; |
| | | case BOOLEAN: |
| | | aLine.append(cellValue.getBooleanValue()); |
| | | break; |
| | | case ERROR: |
| | | aLine.append("#ERR!"); |
| | | break; |
| | | default: |
| | | aLine.append(""); |
| | | break; |
| | | } |
| | | break; |
| | | case NUMERIC: |
| | | String formattedValue = String.format("%.4f", cell.getNumericCellValue()); |
| | | aLine.append(formattedValue); |
| | | break; |
| | | case STRING: |
| | | aLine.append(cell.getStringCellValue()); |
| | | break; |
| | | case BOOLEAN: |
| | | aLine.append(cell.getBooleanCellValue()); |
| | | break; |
| | | case ERROR: |
| | | aLine.append("#ERR!"); |
| | | break; |
| | | default: |
| | | aLine.append(""); |
| | | break; |
| | | } |
| | | aLine.append(","); |
| | | } |
| | | } |
| | | String substring = aLine.substring(0, aLine.length() - 1); |
| | | result.append(substring).append("\n"); |