当前位置 博文首页 > m0_46212244的博客:使用Poi读取xlsx类型的Excel

    m0_46212244的博客:使用Poi读取xlsx类型的Excel

    作者:[db:作者] 时间:2021-09-23 13:32

    其实这个跟读取xls是一样的,就是简单的换了个东西而已,下面直接进入正题。
    1.使用Poi写xlsx类型的Excel

    package com.company.poi;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Poi_WriteXlsxExcel {
        public static void main(String[] args) {
            String[] strings = {"id", "userName", "sex"};
            // 创建excel
            XSSFWorkbook hssfWorkbook = new XSSFWorkbook();
            // 创建sheet表
            XSSFSheet sheet = hssfWorkbook.createSheet();
            // 创建第一行
            XSSFRow row = sheet.createRow(0);
            XSSFCell cell = null;
            // 插入第一行
            for (int i = 0; i < strings.length; i++){
                cell = row.createCell(i);
                cell.setCellValue(strings[i]);
            }
            // 追加数据
            for (int i = 1; i < 10; i++){
                XSSFRow row1 = sheet.createRow(i);
                XSSFCell cell1 = row1.createCell(0);
                cell1.setCellValue("" + i);
                cell1 = row1.createCell(1);
                cell1.setCellValue("userName" + i);
                cell1 = row1.createCell(2);
                cell1.setCellValue("男");
            }
            // 创建一个excel文件
            File file = new File("E:\\Java_Test\\Poi_test01.xlsx");
            try {
                file.createNewFile();
                // 将excel存入流中
                FileOutputStream stream = FileUtils.openOutputStream(file);
                // 将内容写入
                hssfWorkbook.write(stream);
                stream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    }
    
    

    2.使用Poi读取xlsx格式的Escel

    package com.company.poi;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    import java.io.File;
    import java.io.IOException;
    
    public class Poi_ReadXlsxExcel {
        public static void main(String[] args) {
            // 引入需要解析的excel文件
            File file = new File("E:\\Java_Test\\Poi_test01.xlsx");
    
            try {
                // 读取
                XSSFWorkbook xssfWorkbook = new XSSFWorkbook(FileUtils.openInputStream(file));
                // 获取sheet
                XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
                // 获取第一页
                int firstRowNum = 0;
                // 获取最后一页的数
                int lastRowNum = xssfSheet.getLastRowNum();
                for (int i = 0; i < lastRowNum; i++){
                    XSSFRow xssfRow = xssfSheet.getRow(i);
                    // 获取当前行最后单元格的序号
                    int lastCellNum = xssfRow.getLastCellNum();
                    for (int j = 0; j < lastCellNum; j++){
                        XSSFCell xssfCell = xssfRow.getCell(j);
                        String value = xssfCell.getStringCellValue();
                        // 当你的excel不只是String类型的时候 使用这个读取方式
    //                    xssfCell.setCellType(Cell.CELL_TYPE_STRING);
    //                    String value = xssfCell.getRichStringCellValue().getString();
                        System.out.print(value + " ");
                    }
                    System.out.println();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    
    cs