
这是我们的项目结构。

我们导入的依赖。
application.yml配置文件。
goods实体类

type实体类
1.导出
前端代码:
![]()
JavaScript代码:

通过这里跳转到后端
导出的工具类
新建一个ObjectExcelView类,放入我们设置导出控制类

下面是我们的controller类


dao层的方法,复制到service 层,lmpl实现一下就行了,其实查询所有可以直接用mybatisplus自带的方法,我这里是和其他方法冲突了,所以新建了一个方法
这里主要就是通过for循环将我们的数据循环到excel表格,注意这里put进去的key值,
到这里我们的导出就做好了。
2.导入
前端代码:
我这里使用的是form表单的方式进行的上传文件,导入的。

导入的工具类。
导入的控制类ObjectExcelRead
package com.wxy.mapper;
import com.wxy.controller.util.PageData;
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.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
public class ObjectExcelRead {
public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List<Object> varList = new ArrayList<Object>();
try {
File target = new File(filepath, filename);
FileInputStream fi = new FileInputStream(target);
HSSFWorkbook wb = new HSSFWorkbook(fi);
HSSFSheet sheet = wb.getSheetAt(sheetnum); //sheet 从0开始
int rowNum = sheet.getLastRowNum() + 1; //取得最后一行的行号
for (int i = startrow; i < rowNum; i++) { //行循环开始
PageData varpd = new PageData();
HSSFRow row = sheet.getRow(i); //行
int cellNum = row.getLastCellNum(); //每行的最后一个单元格位置
for (int j = startcol; j < cellNum; j++) { //列循环开始
HSSFCell cell = row.getCell(Short.parseShort(j + ""));
Object cellValue = null;
if (null != cell) {
switch (cell.getCellType()) { // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
case _NONE:
cellValue = String.valueOf((int) cell.getNumericCellValue());
break;
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
cellValue = cell.getNumericCellValue() + "";
// cellValue = String.valueOf(cell.getDateCellValue());
break;
case BLANK:
cellValue = "";
break;
case BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
case ERROR:
cellValue = String.valueOf(cell.getErrorCellValue());
break;
}
} else {
cellValue = "";
}
varpd.put("var" + j, cellValue);
}
varList.add(varpd);
}
} catch (Exception e) {
e.printStackTrace();
}
return varList;
}
}
controller层:
这样我们的导入也就做好了。
下面我们来做线形图,饼状图,柱状图
其实也就一个查询所有的方法将数据查询出来,然后通过前端的Ajax进行处理
![]()
dao层
service层
serviceImpl层
controller层
前端代码:
下载JavaScript库

三个图的div
这里需要改的就是提交方法,还有点出来的属性。
需要注意的就是你要展示什么数据,就点什么属性我这里的是商品名称和商品的数量。
SpringBoot+MybatisPlus+Thymeleaf:Excel导入导出及图表绘制
本文介绍了如何在SpringBoot项目中结合MybatisPlus和Thymeleaf实现Excel的导入导出功能,并展示了如何制作饼状图和柱状图。文章详细讲解了项目结构、依赖配置、前端JavaScript代码以及后端的控制器、Service和DAO层的实现。此外,还提供了数据查询方法和前端图表绘制的示例代码。
3720





