Java 读写excel(POI)

1、文件的读写

1.1、文件的读取

        InputStream xlsFile = new FileInputStream("C:\\Users\\暑水\\Desktop\\sign_in.xlsx");
        // 获得工作簿对象
        XSSFWorkbook workbook = new XSSFWorkbook(xlsFile);
        // 获得所有工作表,0指第一个表格
        XSSFSheet sheet = workbook.getSheetAt(0);

        // 获得行数
        int rows = sheet.getLastRowNum();
        // 获得列数
        int cols = sheet.getPhysicalNumberOfRows();
        // 读取数据      
        for (int row = 0; row < rows; ++row) {
            //获取行,行号作为参数传递给getRow方法,第一行从0开始计算
            XSSFRow r = sheet.getRow(row);          
            //遍历列
            for (int col = 0; col < r.getPhysicalNumberOfCells(); col++) {
                XSSFCell cell = r.getCell(col);
                cell.setCellType(Cell.CELL_TYPE_STRING);
                String cellValue = cell.getStringCellValue();
                System.out.print(cellValue + "\t");
            }
            System.out.println();           
        }

1.2、文件的写入

        //创建excel文件
        File NewxlsFile = new File("C:\\Users\\暑水\\Desktop\\实验\\实验数据\\user_lable1.xlsx");
        // 创建一个工作簿
        XSSFWorkbook Newworkbook = new XSSFWorkbook();
        // 创建一个工作表
        XSSFSheet Newsheet = Newworkbook.createSheet("sheet1"); 
        // 将数据填入新的表格中
        for (int row = 0; row < 100; ++row) {
            //创建行
            XSSFRow Newrows = Newsheet.createRow(row);                                          
            for(int col = 0; col < 36; ++col) {
                //按列写入
                Newrows.createCell(col).setCellValue("col"+col); 
                }
        //将excel写入
        FileOutputStream fileOutputStream = new FileOutputStream(NewxlsFile);       
        Newworkbook.write(fileOutputStream);

注:其中XSSF指的是excel版本为2007以上,HSSF是2003版本,一般直接使用XSSF即可。

2、POI中的CellType类型以及值的对应关系

Cell 类型 取值函数
CELL_TYPE _NUMERIC 数值型 0 cell.getNumericCellValue()
CELL_TYPE_STRING 字符串型 1 cell.getStringCellValue()
CELL_TYPE_FORMULA 公式型 2 cell.getCellFormula()
CELL_TYPE_BLANK 空值 3 空值
CELL_TYPE_BOOLEAN 布尔型 4 cell.getBooleanCellvalue()
CELL_TYPE_ERROR 错误 5 error

获取类型:cell.getCellType()
设置类型:cell.setCellType(XSSFCell.Cell类型)
例如:cell.setCellType(XSSFCell.CELL_TYPE_STRING)

附录:

  • String转int
    int a = Integer.parseInt(str);
    int a = Integer.valueOf(str);
  • int 转 String
    String str = String.valueOf(a);
    String str = Integer.toString(a);
    String str = a + "";

3、所需jar包

链接:链接:https://pan.baidu.com/s/1CT-OzkSe1SPbDDy2iHBFMA
提取码:jla9

所需jar包.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。