1 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
2 import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
3 import org.apache.poi.ss.usermodel.Cell;
4 import org.apache.poi.ss.usermodel.CellType;
5 import org.apache.poi.ss.usermodel.Workbook;
6 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9 import org.springframework.web.multipart.MultipartFile;
10
11 import java.io.IOException;
12
13 /**
14 * OOXML or OLE2 文档编辑工具
15 * @author16 */
17 public class POIUtil {
18
19 private static Logger log = LoggerFactory.getLogger(POIUtil.class);
20
21 public static String getCellStringValue(Cell cell) {
22 if (cell != null) {
23 cell.setCellType(CellType.STRING);
24 return cell.getStringCellValue();
25 }
26 return null;
27 }
28
29 /**
30 * 兼容(OOXML or OLE2)Excel 03和07两种格式
31 * @param regionFile
32 * @return
33 */
34 public static Workbook parseFile(MultipartFile regionFile) {
35 Workbook workbook = null;
36 try {
37 workbook = new HSSFWorkbook(regionFile.getInputStream());
38 } catch (OfficeXmlFileException | IOException e) {
39 if (e instanceof OfficeXmlFileException) {
40 try {
41 workbook = new XSSFWorkbook(regionFile.getInputStream());
42 } catch (IOException e1) {
43 log.error("文件解析IO异常", e1);
44 }
45 } else {
46 log.error("文件解析IO异常", e);
47 }
48 }
49 return workbook;
50 }
51 }