SpringBoot项目+Echart数据展示+poi 实现批量导入导出

Tip:本期使用的是SpringBoot框架整合MySQL跟Echarts使用案例和springboot+poi实现导出excel的实例,通过本次案例你能学到SpringBoot里面的Echarts如何获取MySQL里面的数据制作简单图形跟excel并导出导入的需求

1、项目结构:

用Spring Initializr创建

添加 Lombok,Spring Web,Thymeleaf,MySQL Driver

 

最近springboot版本跟新了,注意要选3.0一下的版本,因为3.0的版本最低要求JDK17,目前用的是JDK1.8

先讲Echart数据展示

首先需要引入入echarts.min.js和jquery.js

<!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.4.0/echarts.min.js"></script>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3.min.js"></script>

再建两个div用来显示图形

<div id="main" style="width: 1000px;height:400px;"></div>
<br/>
<div id="pie" style="width: 1000px;height:400px;"></div>

html界面和ajax

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.4.0/echarts.min.js"></script>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<table border="1">
    <tr>
        <th>编号</th>
        <th>名称</th>
        <th>价格</th>
        <th>数量</th>
        <th>类型</th>
        <th>操作</th>
    </tr>
    <tr th:each="list:${list}">
        <td th:text="${list.id}"></td>
        <td th:text="${list.name}"></td>
        <td th:text="${list.price}"></td>
        <td th:text="${list.count}"></td>
        <td th:text="${list.types.tyname}"></td>
        <td><a th:href="@{'/byId/'+${list.id}}">修改</a> &nbsp;&nbsp; <a
                th:href="@{'/deleteId/'+${list.id}+'/'+${list.type}}">删除</a></td>
    </tr>
</table>

<a th:href="@{/downExcel}">导出数据</a>
<form th:action="@{/importExcel}" method="post" enctype="multipart/form-data">
    <input type="file" name="excel">
    <input type="submit" value="数据导入">
</form>

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 1000px;height:400px;"></div>
<br/>
<div id="pie" style="width: 1000px;height:400px;"></div>
<script type="text/javascript">

    //初始化echarts实例
    var myChart1 = echarts.init(document.getElementById('main'));
    myChart1.showLoading();
    //指定图表的配置项和数据
    var names = []; //类别数组(实际放x轴坐标值)
    var nums = []; //库存数组(Y坐标值)
    var price = []; //价格数组(Y坐标值)
    $.ajax({
        type: "get",
        url: "/list",
        dataType: "json",
        async: false,
        success: function (result) {
            for (var i = 0; i < result.length; i++) {
                names.push(result[i].name);
                nums.push(result[i].count);
                price.push(result[i].price);
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.readyState);//当数据请求失败可以查看请求的状态
        }
    });

    myChart1.hideLoading();//隐藏加载动画
    // 指定图表的配置项和数据
    var option = {
        title: {
            text: '超
Easypoi 是一个基于 Java 的简单易用的 Excel 生成库,主要用于处理 Excel 表格数据的读写。而 MongoDB 是一种流行的 NoSQL 数据库存储系统,它以其灵活性和高扩展性著称。 结合 Easypoi 和 MongoDB,如果你想从 MongoDB 中提取大量数据并将其导出到 Excel 文件,你可以按照以下步骤操作: 1. **连接数据库**:首先,你需要通过 MongoDB 的驱动程序(如 Mongodb Java Driver)连接到你的 MongoDB 数据库,并编写查询来获取需要导出的数据集合。 ```java MongoClient mongoClient = new MongoClient("mongodb://localhost:27017"); MongoDatabase db = mongoClient.getDatabase("your_database_name"); MongoCollection<Document> collection = db.getCollection("your_collection_name"); ``` 2. **数据转换**:将 MongoDB 的文档(Document)转换成适合 Easypoi 导出的对象数组或列表。这通常涉及到 POJO (Plain Old Java Object) 类型,用于存储数据结构。 3. **生成工作表**:使用 Easypoi 的 `XSSFWorkbook` 或 `XLSXWorkBook` 创建一个新的 Excel 工作簿,然后创建新的工作表 (`XSSFSheet`)。 4. **写入数据**:遍历你之前转换好的数据,利用 Easypoi 提供的 API 将数据一行行地写入到工作表中,例如 `row.createCell(columnIndex).setCellValue(value)`。 5. **保存文件**:最后,将写入数据的工作簿保存为 Excel 文件。 ```java try { XSSFWorkbook workbook = ... // 之前创建的工作簿 FileOutputStream outputStream = new FileOutputStream("output.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值