美文网首页
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