700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java读取Excel里面的内容包括(xls和xlsx)后缀文件

java读取Excel里面的内容包括(xls和xlsx)后缀文件

时间:2020-04-18 22:53:33

相关推荐

java读取Excel里面的内容包括(xls和xlsx)后缀文件

java通过POI架包(HSSFWorkbook和XSSFWorkbook)读取Excel里面的内容包括(xls和xlsx)后缀文件

在我们平时的开发的过程,难免会遇到需要读取Excel文件,Excel文件又分为xls和xlsx文件,这篇文章通过POI中的HSSFWorkbook和XSSFWorkbook来读取Excel文件

POI版本的问题

poi-3.16.jar

poi-examples-3.16.jar

poi-excelant-3.16.jar

poi-ooxml-3.16.jar

poi-ooxml-schemas-3.16.jar

poi-scratchpad-3.16.jar

目前POI的最新发布版本是3.10_FINAL.该版本保护的jar包有:

很多人都困惑POI那么多Jar到底应该导入哪一个。

实际上很多时候我们只利用POI来操作Excel。甚至只用xls这一种格式。

那么就没有必要全部都导入了。具体应该使用哪个JAR包请参考以下内容:

当我们只要使用xls格式时、只要导入poi-version-yyyymmdd.jar就可以了。

当我们还要使用xlsx格式、还要导入poi-ooxml-version-yyyymmdd.jar。

至于poi-ooxml-schemas-version-yyyymmdd.jar这个jar基本不太会用到的。

当我们需要操作word、ppt、viso、outlook等时需要用到poi-scratchpad-version-yyyymmdd.jar。

直接上代码

读取excel中,xlsx后缀的文件

//读取excel中,xlsx后缀的文件public static List<String> searchExcelXlsx(String fileUrl){List<String> list = new ArrayList<>();// 用流的方式先读取到你想要的excel的文件FileInputStream fis;try {fis = new FileInputStream(new File(request.getSession().getServletContext().getRealPath(fileUrl)));// 获取整个excelXSSFWorkbook hb = new XSSFWorkbook(fis);System.out.println(hb.getNumCellStyles());// 获取第一个表单sheetSheet sheet = hb.getSheetAt(0);// 获取第一行int firstrow = sheet.getFirstRowNum();// 获取最后一行int lastrow = sheet.getLastRowNum();// 循环行数依次获取列数for (int i = firstrow; i < lastrow + 1; i++) {// 获取哪一行iRow row = sheet.getRow(i);if (row != null) {// 获取这一行的第一列int firstcell = row.getFirstCellNum();// 获取这一行的最后一列int lastcell = row.getLastCellNum();// 创建一个集合,用处将每一行的每一列数据都存入集合中for (int j = firstcell; j < lastcell; j++) {// 获取第j列Cell cell = row.getCell(j);if (cell != null) {//System.out.print("--->"+cell);list.add(cell.toString());}}}}return list;} catch (Exception e) {e.printStackTrace();return null;}}

只需要传一个文件路径,就可以直接读取,读取是一行一行的,读取出来的内容有序的存放在List集合中

//读取读取excel中,xls后缀的文件

//读取读取excel中,xls后缀的文件public static List<String> searchExcelXls(String fileUrl){List<String> list = new ArrayList<>();// 用流的方式先读取到你想要的excel的文件try {// 解析excelPOIFSFileSystem pSystem = new POIFSFileSystem(new FileInputStream(request.getSession().getServletContext().getRealPath(fileUrl)));// 获取整个excelHSSFWorkbook hb = new HSSFWorkbook(pSystem);System.out.println(hb.getNumCellStyles());// 获取第一个表单sheetHSSFSheet sheet = hb.getSheetAt(0);// 获取第一行int firstrow = sheet.getFirstRowNum();// 获取最后一行int lastrow = sheet.getLastRowNum();// 循环行数依次获取列数for (int i = firstrow; i < lastrow + 1; i++) {// 获取哪一行iHSSFRow row = sheet.getRow(i);if (row != null) {// 获取这一行的第一列int firstcell = row.getFirstCellNum();// 获取这一行的最后一列int lastcell = row.getLastCellNum();//将每一行的每一列数据都存入集合中for (int j = firstcell; j < lastcell; j++) {// 获取第j列HSSFCell cell = row.getCell(j);if (cell != null) {//System.out.print("---->"+cell+"\n" );}list.add(cell.toString());}}}return list;} catch (Exception e) {e.printStackTrace();return null;}}

这个也是只需要传一个文件路径,就可以直接读取,读取是一行一行的,读取出来的内容有序的存放在List集合中

亲测有效

最后附上架包路径

百度网盘:/s/1Y4BLto_mEUkS7Xhx1GJmzA

提取码:vor5

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。