html:

<button class="layui-btn" onclick="exportData();">导出</button>
<button class="layui-btn" onclick="downloadTemplate();">模板下载</button>
<button id="importData" class="layui-btn" onclick="importData()">导入</button>

js:

//导入 用layui upload插件
layui.use([ "element", "laypage", "layer", "upload"], function() {
var element = layui.element;
var laypage = layui.laypage;
var layer = layui.layer;
var upload = layui.upload;//主要是这个
layui.upload.render({
elem: "#importData",//导入id
url: "/xx/importData",
size: '3072',
accept: "file",
exts: 'xls|xlsx|xlsm|xlt|xltx|xltm',
done: function (result) {
if (result.status == 0) {
refreshTable()
}
if (result.message != null) {
refreshTable();
layer.msg(result.message)
}
}
});
refreshTable()
});
//导出
function exportData() {
$.ajax({
type: "post", url: "/xx/exportData", data: {}, success: function (result) {
if (result.status == 0) {
window.open(result.data)
}
if (result.message != null) {
layer.msg(result.message)
}
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
layer.msg('{"status":"' + XMLHttpRequest.status + '","readyState":"' + XMLHttpRequest.readyState + '","textStatus":"' + textStatus + '","errorThrown":"' + errorThrown + '"}')
}
})
}; //模板下载
function downloadTemplate() {
$.ajax({
type: "post", url: "/xx/downloadTemplate", data: {}, success: function (result) {
if (result.status == 0) {
window.open(result.data)
}
if (result.message != null) {
layer.msg(result.message)
}
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
layer.msg('{"status":"' + XMLHttpRequest.status + '","readyState":"' + XMLHttpRequest.readyState + '","textStatus":"' + textStatus + '","errorThrown":"' + errorThrown + '"}')
}
})
}

 

java后端:

 // 导入
@PostMapping(value = "importData")
ResultJson importData(@RequestParam MultipartFile file) {
ResultJson resultJson = new ResultJson();
List<ProjectJson> importData = null;
try {
importData = ExcelUtil.importExcel(file.getInputStream(), ProjectJson.class);
} catch (IOException e) {
e.printStackTrace();
}
if (null == importData) {
resultJson.setStatus(1);
resultJson.setMessage("导入失败!");
return resultJson;
}
int num = 0; for (ProjectJson projectJson : importData) {
ProjectManageEntity projectManageEntity = new ProjectManageEntity();
num++;
if (CommonUtil.isEmpty(projectJson.getNumber())) {
resultJson.setMessage("导入失败!第" + num + "行的编号不能为空");
resultJson.setStatus(1);
return resultJson;
}
if (projectService.findByprojectNumber(projectJson.getNumber()) != null) {
resultJson.setStatus(1);
resultJson.setMessage("导入失败!第" + num + "行的编号重复");
resultJson.setData(null);
return resultJson;
} projectManageEntity.setCreateDate(new Date());
projectManageEntity.setUpdateDate(new Date());
projectManageEntity.setName(projectJson.getName());
projectManageEntity.setNumber(projectJson.getNumber());
projectManageEntity.setType(projectJson.getType());
projectManageEntity.setDeleteMark(false);
projectManageEntity.setCode("PROJECT_MANAGE" + UUID.randomUUID());
projectService.save(projectManageEntity);
} resultJson.setStatus(0);
resultJson.setMessage("导入成功!");
resultJson.setData(null);
return resultJson;
} //导出
@PostMapping(value = "exportData")
ResultJson exportData() {
String excelTitle = "项目管理";
String path = "/export/company/excel/" + DateUtil.getEightDateFormat().format(new Date());
String realPath = CommonUtil.createFolderPath(propertyUtil.getUploadPath() + path); return ExcelUtil.exportExcel(excelTitle, realPath, path, ProjectJson.class, projectService.getAll());
} //下载模板
@PostMapping(value = "downloadTemplate")
public ResultJson downloadTemplate() {
String excelTitle = "项目管理模板";
String path = "/export/company/excel/" + DateUtil.getEightDateFormat().format(new Date());
String realPath = CommonUtil.createFolderPath(propertyUtil.getUploadPath() + path);
return ExcelUtil.exportExcel(excelTitle, realPath, path, ProjectJson.class, projectService.getDownloadTemplate());
}
/**
* 创建指定目录
*
* @param folderPath 目录地址
* @return 目录地址
*/
public static final String createFolderPath(String folderPath) {
File file = new File(folderPath);
if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
String[] diskNames = {"A:", "B:", "C:", "D:", "E:", "F:", "G:", "H:", "I:", "J:", "K:", "L:", "M:", "N:",
"O:", "P:", "Q:", "R:", "S:", "T:", "U:", "V:", "W:", "X:", "Y:", "Z:"};
for (int i = 0; i < diskNames.length; i++) {
if (i > 0) {
folderPath = folderPath.replace(diskNames[i - 1], diskNames[i]);
} else {
folderPath = diskNames[0] + folderPath;
}
file = new File(folderPath);
if (!file.exists()) {
file.mkdirs();
}
if (file.exists()) {
return folderPath;
}
}
return null;
} else {
if (!file.exists()) {
file.mkdirs();
}
if (file.exists()) {
return folderPath;
}
return null;
}
}
public class ExcelUtil {

    /**
* 导入Excel
*
* @param inputstream
* Excel数据流
* @param clazz
* 注解的实体类
* @return 导入的数据
*/
public static <T> List<T> importExcel(InputStream inputstream, Class<T> clazz) {
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setNeedSave(true);
try {
return ExcelImportUtil.importExcel(inputstream, clazz, params);
} catch (Exception e) {
e.printStackTrace();
return null;
}
} /**
* 导出Excel
*
* @param excelTitle
* Excel标题
* @param realPath
* 真实路径
* @param path
* 响应路径
* @param clazz
* 注解的实体类
* @param excels
* 注解的实体类集合
* @return 响应结果
*/
public static <T> ResultJson exportExcel(String excelTitle, String realPath, String path, Class<T> clazz,
List<T> excels) {
ResultJson resultJson = new ResultJson();
try {
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(excelTitle, excelTitle), clazz, excels);
String filename = excelTitle + "-" + DateUtil.getEightDateFormat().format(new Date()) + ".xls";
File dirPath = new File(realPath);
if (!dirPath.exists()) {
dirPath.mkdirs();
}
try {
FileOutputStream outputStream = new FileOutputStream(realPath + "/" + filename);
workbook.write(outputStream);
resultJson.setStatus(0);
resultJson.setData(path + "/" + filename);
} catch (Exception e) {
e.printStackTrace();
resultJson.setStatus(1);
return resultJson;
}
} catch (Exception e) {
e.printStackTrace();
resultJson.setStatus(1);
return resultJson;
}
return resultJson;
} }

java+layui的Excel导入导出的更多相关文章

  1. Java 使用 Jxl 实现 Excel 导入导出

    开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的.这里做一下使用JXL的学习记录.首先需要导入相应的 ...

  2. java jxl excel 导入导出的 总结(建立超链接,以及目录sheet的索引)

    最近项目要一个批量导出功能,而且要生成一个单独的sheet页,最后后面所有sheet的索引,并且可以点击进入连接.网上搜索了一下,找到一个方法,同时把相关的excel导入导出操作记录一下!以便以后使用 ...

  3. Java实现将Excel导入数据库和从数据库中导出为Excel

    实现的功能: 用Java实现从Excel导入数据库,如果存在就更新 将数据库中的数据导出为Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的 ...

  4. JAVA实现Excel导入/导出【转】

    JAVA实现Excel导入/导出[转] POI的下载与安装 请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bi ...

  5. Java之POI的excel导入导出

    一.Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件.这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Offic ...

  6. java简易excel导入导出工具(封装POI)

    Octopus 如何导入excel 如何导出excel github项目地址 Octopus Octopus 是一个简单的java excel导入导出工具. 如何导入excel 下面是一个excel文 ...

  7. JAVA Excel导入导出

    --------------------------------------------方式一(新)-------------------------------------------------- ...

  8. Java基础学习总结(49)——Excel导入导出工具类

    在项目的pom文件中引入 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifac ...

  9. Java Excel 导入导出(一)

    本文主要描述通过java实现Excel导入导出 一.读写Excel三种常用方式 1.JXL——Java Excel开放源码项目:读取,创建,更新 2.POI——Apache POI ,提供API给Ja ...

随机推荐

  1. pycharm-1

    Python 1.4解释器(运行文件) 1.5注释:#单行,ctrl+/ 多行注释       ””” ””” 2.1变量 assert,except:lambda; nonlocal; 2.2数据类 ...

  2. node--处理一个增加上传操作和渲染页数条

    一段学习的结束 我也不知道我这是在写些什么,只是觉得学完了一些东西,就是想把它记录 一下,这样我就可以知道我是学过这一块的,要多激励自己,^^O(∩∩)O哈哈~ 以下内容并不完全与标题匹配,不过以下内 ...

  3. WSL Ubuntu 安装MongoDb 4.0导入公钥时遇到一个坑 (转)

    WSL Ubuntu 安装MongoDb 4.0导入公钥时遇到一个坑 一路坑啊~~~网上的密钥都不对????  不应该啊 源中默认是MongoDb 3.x 但是我想用4.0,然后按照mongodb官方 ...

  4. LOJ#508. 「LibreOJ NOI Round #1」失控的未来交通工具

    题意 一个带边权无向图,有两种操作:加边以及询问在\(x,x+b,...,x+(c-1)b\)这些数中,有多少个数存在至少一条与之模\(m\)同余的从\(u\)到\(v\)的路径(可以不是简单路径). ...

  5. 用友UAP NC 单据新增数据时抛出"流程平台缓存中不存在该单据或交易类型=HB06"

    正常单据新增时,抛出异常"流程平台缓存中不存在该单据或交易类型=HB06"

  6. unity一些操作汇总

    设置父物体高度自适应子物体:父物体添加ContentSizeFitter,设置Horizeontal Fit和Vertical Fit为Preferred Size. ScrollView设置Cone ...

  7. java - synchronized与lock的区别

    synchronized与lock的区别 原始构成 synchronized是关键字属于JVM层面 monitorenter(底层是通过monitor对象来完成,其实wait/notify等对象也依赖 ...

  8. Mac 多版本 JDK 管理

    Mac 多版本 JDK 管理 1. 准备 ZSH Homebrew Oracle JDK 1.8 安装包(Homebrew 官方源和第三方源不再提供老版本的 Oracle JDK) 2. 安装 JDK ...

  9. LaTeX技巧010:LaTtex中如何给每个句子加序号?

    效果图: 代码: \documentclass{article} \newcounter{sentence} \renewcommand\thesentence{\textsuperscript{\a ...

  10. window.location.herf传值问题

    各个值之间用&&&&&&连接 新版本的tomcat不支持其他字符,需要通过encodeURIComponent编码 变量名数字后不能直接加字母 such ...