美文网首页
Java读取excel表格(原理+实现)

Java读取excel表格(原理+实现)

作者: _FireFly_ | 来源:发表于2020-10-12 09:24 被阅读0次

    一般都是用poi技术去读取excel表格的

    什么是Apache POI?

    Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它包含类和方法对用户输入数据或文件到MS Office文档进行解码。

    Apache POI

    Apache POI是Apache软件基金会提供的100%开源库。大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF+ XSSF)。它支持Excel 库的所有基本功能; 然而,呈现和文本提取是它的主要特点。


    工作簿

    这是创建或维护Excel工作簿的所有类的超接口。它属于org.apache.poi.ss.usermodel包。是实现此接口的两个类,如下所示:

    • HSSFWorkbook : 这个类有读取和.xls 格式和写入Microsoft Excel文件的方法。它与微软Office97-2003版本兼容。

    • XSSFWorkbook : 这个类有读写Microsoft Excel和OpenOffice的XML文件的格式.xls或.xlsx的方法。它与MS-Office版本2007或更高版本兼容。

    现在我用Java实现读取excel表格

    代码实现

    public static void excel() throws Exception {
            //用流的方式先读取到你想要的excel的文件
            FileInputStream fis=new FileInputStream(new File(System.getProperty("user.dir")+"/src/excel.xls"));
            //解析excel
            POIFSFileSystem pSystem=new POIFSFileSystem(fis);
            //获取整个excel
            HSSFWorkbook hb=new HSSFWorkbook(pSystem);
            System.out.println(hb.getNumCellStyles());
            //获取第一个表单sheet
            HSSFSheet sheet=hb.getSheetAt(0);
            //获取第一行
        int firstrow=    sheet.getFirstRowNum();
        //获取最后一行
        int lastrow=    sheet.getLastRowNum();
        //循环行数依次获取列数
            for (int i = firstrow; i < lastrow+1; i++) {
                //获取哪一行i
                Row row=sheet.getRow(i);
                if (row!=null) {
                    //获取这一行的第一列
                int firstcell=    row.getFirstCellNum();
                //获取这一行的最后一列
                int lastcell=    row.getLastCellNum();
                //创建一个集合,用处将每一行的每一列数据都存入集合中
                List<String> list=new ArrayList<>();
                for (int j = firstcell; j <lastcell; j++) {
                    //获取第j列
                    Cell cell=row.getCell(j);
                    
                    if (cell!=null) {
                        System.out.print(cell+"\t");
                        list.add(cell.toString());
                    }
                }
                
                User user=new User();
                if (list.size()>0) {
                    user.setUsername(list.get(1));
                    user.setPassword(list.get(2));
                }
                BaseDAO dao=new BaseDAO();
                dao.save(user);
                System.out.println();
                }
            }
            fis.close();
        }
    

    相关文章

      网友评论

          本文标题:Java读取excel表格(原理+实现)

          本文链接:https://www.haomeiwen.com/subject/lxkupktx.html