• java创建excel文件和解析excel文件


    创建excel文件

    package com.bjpowernode.crm.poi;
    
    import org.apache.poi.hssf.usermodel.*;
    import org.apache.poi.ss.usermodel.HorizontalAlignment;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    public class CreateExcel {
        public static void main(String[] args) throws IOException {
            //创建HSSFWordbook对象,对应一个Excel文件
            HSSFWorkbook wb = new HSSFWorkbook();//
            //使用wb创建HSSFSheet对象,对应wb文件的中的一页
            HSSFSheet sheet = wb.createSheet("学生列表");
            //使用sheet创建HSSFRow对象,对应sheet中的一行
            HSSFRow row = sheet.createRow(0);//行号,从0开始,一次递增
            //使用rwo创建HSSFCell对象,对应row中的列
            HSSFCell cell = row.createCell(0);//列号,从0开始,一次递增
            //他贵儿勒个有点神,变量名字可以重复
            cell.setCellValue("学号");
            cell = row.createCell(1);
            cell.setCellValue("姓名");
            cell = row.createCell(2);
            cell.setCellValue("年龄");
            //生成HSSFCellStyle对象
            //居中样式
            HSSFCellStyle style = wb.createCellStyle();
            style.setAlignment(HorizontalAlignment.CENTER);
            //使用sheet创建10个HSSFRow对象,对应sheet中的10行
            for (int i = 1; i < 10; i++) {
                row = sheet.createRow(i);
                cell = row.createCell(0);
                cell.setCellValue(100+i);
                cell = row.createCell(1);
                cell.setCellValue("NAME"+i);
                cell = row.createCell(2);
                cell.setCellStyle(style);
                cell.setCellValue(20+i);
            }
            //调用工具函数生成excel文件
            //文件可以不创建,但是目录必须存在
            OutputStream os = new FileOutputStream("D:\\dev.kai\\crm项目工具\\客户端已经有的文件\\studentList.xls");
            wb.write(os);
            //关闭资源
            os.close();
            wb.close();
            System.out.println("====creatOk");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    运行结果
    在这里插入图片描述

    解析excel文件

    package com.bjpowernode.crm.poi;
    
    import com.bjpowernode.crm.commons.utils.HSSFUtils;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    
    import java.io.FileInputStream;
    
    /**
     * 使用apache-poi解析excel文件
     */
    
    public class ParseExcelTest {
        public static void main(String[] args) throws Exception {
            //根据excel文件生成HSSFWorkbook对象,封装了excel文件的所有信息
            FileInputStream is = new FileInputStream("D:\\dev.kai\\crm项目工具\\服务器端生成的excel文件\\studentList.xls");
            HSSFWorkbook wb = new HSSFWorkbook(is);
            //根据wb获取HSSFSheet对象,封装了一页的所有信息
            HSSFSheet sheet = wb.getSheetAt(0);//页的下标,下标为0开始时,依次递增
            //根据sheet获取HSSFRow对象,封装了一行的所有信息
            HSSFRow row =null;
            HSSFCell cell=null;
            for (int i = 0; i <= sheet.getLastRowNum(); i++) {//sheet.getLastRowNum();最后一行的下标
                row= sheet.getRow(i);//行的下标,下标从0开始,依次增加
                for (int j = 0; j < row.getLastCellNum(); j++) {//row.getLastCellNum();最后一列的下标+1
                    //根据row获取HSSFCell对象,封装了一列的所有信息
                    cell = row.getCell(j);
                    //获取列中的数据
                    System.out.print(HSSFUtils.getCellValueForStr(cell)+" ");
                }
                //每一行中所有列都打完,打印一个换行
                System.out.println();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    在这里插入图片描述

  • 相关阅读:
    NLP之TextRNN(预测下一个单词)
    并发编程的核心问题
    Hadoop-3.2.3集群搭建
    基于ssm的人事管理系统
    期货穿透式监管实质(期货看穿式监管)
    MySQL 索引底层原理
    二、Java内存模型与volatile
    若依 ruoyi 分离版 vue 简单的行内编辑实现
    ElasticSearch从入门到精通:基础知识
    如何拼接两张图片?
  • 原文地址:https://blog.csdn.net/m0_64803878/article/details/132923877