# study-excel **Repository Path**: hexingjie/study-excel ## Basic Information - **Project Name**: study-excel - **Description**: 学习使用java读写excel文件 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-23 - **Last Updated**: 2021-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用java读取excel文件 ---- ### 待解决的问题: 1. 先读取固定后缀为xlsx的文件,后续读取各种其他格式的excel文件 2. excel中有多个sheet,先固定读取第一个sheet,后续有多少个,就读取多少个。 3. excel中每个sheet的列数可能不是固定的,先固定其中的列数是一个固定值,后续读取变化值。 4. 当读取excel结束后,将指定的数据写入excel文件 ---- ### 判断一个文件是否是excel文件:使用魔数 参考:https://zhuanlan.zhihu.com/p/53346563 POI工具的源码,发现xlsx文件的魔数十六进制的表示法是:0x50, 0x4b。 ``` /** * 判断文件是否为excel格式 * 能够解决本质是excel表,但是后缀被修改为其他后缀的文件 * 并且能够解决本质不是excel表,但是后缀被修改为xlsx后缀的文件。 * * @param inputStream * @return */ public static Boolean isExcelFile(InputStream inputStream) { boolean result = false; try { inputStream=FileMagic.prepareToCheckMagic(inputStream); FileMagic fileMagic = FileMagic.valueOf(inputStream); if (Objects.equals(fileMagic, FileMagic.OLE2) || Objects.equals(fileMagic, FileMagic.OOXML)) { result = true; } } catch (IOException e) { e.printStackTrace(); } return result; } ``` ---- # 解决方法: 1. 使用apache的POI读取excel文件 2. 使用alibaba的EasyExcel读取excel文件: https://github.com/alibaba/easyexcel