day06--讲师管理模块前端开发

day06--讲师管理模块前端开发

谷粒学院功能简介及系统架构 https://www.cnblogs.com/coderD/p/14506161.html

day01--MybatisPlus的使用 https://www.cnblogs.com/coderD/p/14506180.html

day02--环境搭建与讲师管理接口开发 https://www.cnblogs.com/coderD/p/14506295.html

day03--项目前端相关基础知识 https://www.cnblogs.com/coderD/p/14506446.html

day04--项目前端相关基础知识(二) https://www.cnblogs.com/coderD/p/14506481.html

day05--讲师管理模块前端开发 https://www.cnblogs.com/coderD/p/14506505.html

day06--讲师管理模块前端开发 https://www.cnblogs.com/coderD/p/14506540.html

day07--课程发布-添加课程信息 https://www.cnblogs.com/coderD/p/14506574.html

day08--课程发布-添加课程信息 https://www.cnblogs.com/coderD/p/14506609.html

day09--课程列表和整合阿里云视频点播 https://www.cnblogs.com/coderD/p/14506636.html

day10--微服务调用 https://www.cnblogs.com/coderD/p/14506649.html

day11--首页数据显示和添加Redis缓冲 https://www.cnblogs.com/coderD/p/14506655.html

day12--首页登录和注册 https://www.cnblogs.com/coderD/p/14506657.html

day13--微信扫码登陆 https://www.cnblogs.com/coderD/p/14506670.html

day14--首页课程和名师功能 https://www.cnblogs.com/coderD/p/14506677.html

day15--统计分析 https://www.cnblogs.com/coderD/p/14506685.html

day16--权限管理 https://www.cnblogs.com/coderD/p/14506689.html

day17--权限管理和配置服务 https://www.cnblogs.com/coderD/p/14506701.html

1、阿里云存储OSS

1.1、对象存储OSS

为了解决海量数据存储与弹性扩容,项目中我们采用云存储的解决方案- 阿里云OSS。

1.1.1、开通“对象存储OSS”服务

(1)申请阿里云账号

(2)实名认证

(3)开通“对象存储OSS”服务

(4)进入管理控制台

1.1.2、创建Bucket

选择:标准存储、公共读、不开通

image-20210309142151994

1.1.3、使用SDK

官方地址:https://help.aliyun.com/document_detail/32008.html?spm=5176.87240.400427.45.79f84614r9EHOu

2、Excel

2.1、POI读写Excel的基本使用

2.1.1、Excel导入导出的应用场景

1、数据导入:减轻录入工作量

2、数据导出:统计信息归档

3、数据传输:异构系统之间数据传输

2.1.2、EasyExcel的简介

特点

  • Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。
  • EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
  • EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。

2.2、Excel写

2.2.1、创建项目,实现EasyExcel对Excel写操作

  • 创建一个普通项目

  • pom中引入xml相关依赖

    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
        </dependency>
    </dependencies>
    
  • 实现最终的添加操作(写法一)

public static void main(String[] args) throws Exception {
    // 写法1
    String fileName = "F:\\11.xlsx";
    // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
    // 如果这里想使用03 则 传入excelType参数即可
    EasyExcel.write(fileName, DemoData.class).sheet("写入方法一").doWrite(data());
}

(写法二)

public static void main(String[] args) throws Exception {
    // 写法2,方法二需要手动关闭流
    String fileName = "F:\\112.xlsx";
    // 这里 需要指定写用哪个class去写
    ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build();
    WriteSheet writeSheet = EasyExcel.writerSheet("写入方法二").build();
    excelWriter.write(data(), writeSheet);
    /// 千万别忘记finish 会帮忙关闭流
    excelWriter.finish();
}

2.3、Excel读

  • 添加读取操作的监听器

    //创建读取excel监听器
    public class ExcelListener extends AnalysisEventListener<ReadData> {
        //创建list集合封装最终的数据
        List<ReadData> list = new ArrayList<ReadData>();
    
        //一行一行去读取excle内容
        @Override
        public void invoke(ReadData user, AnalysisContext analysisContext) {
           System.out.println("***"+user);
            list.add(user);
        }
    
        //读取excel表头信息
        @Override
        public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
            System.out.println("表头信息:"+headMap);
        }
    
        //读取完成后执行
        @Override
        public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        }
    }
    
  • 调用实现最终的读取

    public static void main(String[] args) throws Exception {
            // 写法1:
            String fileName = "F:\\01.xlsx";
            // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
            EasyExcel.read(fileName, ReadData.class, new ExcelListener()).sheet().doRead();
    
            // 写法2:
            InputStream in = new BufferedInputStream(new FileInputStream("F:\\01.xlsx"));
            ExcelReader excelReader = EasyExcel.read(in, ReadData.class, new ExcelListener()).build();
            ReadSheet readSheet = EasyExcel.readSheet(0).build();
            excelReader.read(readSheet);
            // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的
            excelReader.finish();
    }
    
posted @ 2021-03-09 16:51  codeFiler  阅读(163)  评论(0编辑  收藏  举报