原生POI / EasyPOI 简单上手使用

原生POI

导入依赖:


    org.apache.poi
    poi
    3.15

导出到Excel(将数据放入Excel)

普通文本:

原生POI / EasyPOI 简单上手使用_第1张图片

日期:

原生POI / EasyPOI 简单上手使用_第2张图片

对象集合:

实体类

原生POI / EasyPOI 简单上手使用_第3张图片

案例代码

原生POI / EasyPOI 简单上手使用_第4张图片

效果图

原生POI / EasyPOI 简单上手使用_第5张图片

从Excel导入(从Excel取数据)

案例代码

原生POI / EasyPOI 简单上手使用_第6张图片

结果输出

原生POI / EasyPOI 简单上手使用_第7张图片

测试打印成功。

将拿到的数据放入数据库。这里要考虑一个问题,如果数据量大的时候,需要使用批量插入。避免来来回回调用数据库而产生问题。(具体可查百度)。

 

EasyPOI

导入依赖

(要把原生POI的jar包依赖注释掉)

原生POI / EasyPOI 简单上手使用_第8张图片

简单对象导出:

实体类

原生POI / EasyPOI 简单上手使用_第9张图片

案例代码

原生POI / EasyPOI 简单上手使用_第10张图片

Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("计算机一班","学生",Student.class,list));

计算机一班:表格的标题

学生:表的名字

效果图

原生POI / EasyPOI 简单上手使用_第11张图片

复杂对象导出:

实体类

原生POI / EasyPOI 简单上手使用_第12张图片

案例代码

原生POI / EasyPOI 简单上手使用_第13张图片

Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("计算机系老师","老师",Teacher.class,list));

运行时要把原文件(xls)关掉。

效果图

原生POI / EasyPOI 简单上手使用_第14张图片

 

图片导出(本地)

(无法导远程网络图片)

实体类

原生POI / EasyPOI 简单上手使用_第15张图片

案例代码

原生POI / EasyPOI 简单上手使用_第16张图片

效果图

原生POI / EasyPOI 简单上手使用_第17张图片

图片导出(远程网络图片)

(思路:先下载到本地再导出)

原生POI / EasyPOI 简单上手使用_第18张图片

(AliyunOssUtil.java 在文末附上)

 

图片导入(从Excel取)

案例代码

原生POI / EasyPOI 简单上手使用_第19张图片

输出结果

原生POI / EasyPOI 简单上手使用_第20张图片

此时会发现headImg的地址为系统在导入时自建的目录。

如果想要将数据入库,需要修改一下这个路径。(暂不阐述)

 

AliyunOssUtil.java

package com.baizhi.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.PutObjectRequest;
import org.springframework.web.multipart.MultipartFile;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;

public class AliyunOssUtil {
    private static String endpoint = "https://oss-cn-beijing.aliyuncs.com";
    // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
    private static String accessKeyId = "你的accessKeyId";
    private static String accessKeySecret = "你的accessKeySecret";
    private static String bucketName="你的bucketName";
    /*
    * 上传本地文件
    * 参数:
    * fileName:上传的文件名
    * localPath:指定的本地的文件路径
    * */
    public static void uploadLocalFile(String fileName,String localPath) {
// 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 创建PutObjectRequest对象。
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, new File(localPath));
// 上传文件。
        ossClient.putObject(putObjectRequest);
// 关闭OSSClient。
        ossClient.shutdown();
    }
    /*
    * 上传byte数组
    *
    * */
    public static void uploadByteFile(MultipartFile path, String fileName){
        byte[] content= new byte[0];
        try {
            content = path.getBytes();
        } catch (IOException e) {
            e.printStackTrace();
        }
// 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
// 上传Byte数组。
        ossClient.putObject(bucketName, fileName, new ByteArrayInputStream(content));
// 关闭OSSClient。
        ossClient.shutdown();
    }
    /*
    * 删除文件方法
    * 参数:
    *     删除的远程文件名
    * */
    public static void TestDelete(String objectName){
// 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 删除文件。如需删除文件夹,请将ObjectName设置为对应的文件夹名称。如果文件夹非空,则需要将文件夹下的所有object删除后才能删除该文件夹。
        ossClient.deleteObject(bucketName, objectName);
// 关闭OSSClient。
        ossClient.shutdown();
    }
    public static void testDownload(String objectName,String localPath){
// 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。
        ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(localPath));

// 关闭OSSClient。
        ossClient.shutdown();

    }
}

 

EasyPOI详细教程文档:http://easypoi.mydoc.io/

你可能感兴趣的:(数据库,poi,excel)