扩展 layui 的导出插件 layui.excel

之前在工作过程中还有社区交流过程中,发现对导出 Excel 文件有需求,所以就萌发了封装插件的想法。导出excel功能基于 XLSX.js,部分代码参考网上的资料。

环境提示:预览环境需要部署在服务器下,不然无法异步获取需要导出的数据

功能演示:

在线演示:

期望收集

BUG收集

接口设计和后台程序参考

完善中....

函数列表

函数名

描述

downloadExcel(data, filename, type)

导出数据,并弹出指定文件名的下载框

filterExportData(data, fields)

梳理导出的数据,包括字段排序和多余数据过滤

重要函数参数配置

downloadExcel参数配置

核心方法,用于将 data 数据依次导出,如果需要调整导出后的文件字段顺序或者过滤多余数据,请查看 filterExportData 方法

参数名称

描述

默认值

data

数据列表

必填

filename

文件名称(不要带后缀)

必填

type

导出类型,支持 xlsx、csv、ods、xlsb、fods、biff2

xlsx

filterExportData参数配置

辅助方法,梳理导出的数据,包括字段排序和多余数据过滤

参数名称

描述

默认值

data

需要梳理的数据

必填

fields

支持数组和对象,用于映射关系和字段排序

必填

fields参数设计

在实际使用的过程中,后端给的参数多了,或者字段数据不符合导出要求,这都是很常见的情况。为了导出数据的顺序正确和数据映射正确,于是新增了这个方法。

fields 用于表示对象中的属性顺序和映射关系,支持『数组』和『对象』两种方式

假如后台给出了这样的数据:

{

"code":0,

"msg":"",

"count":3,

"data":[

{

"id":10000,

"username":"user-0",

"sex":"女",

"city":"城市-0",

"sign":"签名-0",

"experience":255,

"logins":24,

"wealth":82830700,

"classify":"作家",

"score":57

}

]

}

数组方式:

仅用于排序、字段过滤,比如我希望的导出顺序和字段是:

id、sex、username、city

那么,我可以这样写:

var data = [];// 假设的后台的数据

excel.filterExportData(data, ['id', 'sex', 'username', 'city']);

excel.downloadExcel(data, '导出测试', 'xlsx');

对象方式:

可以用于排序、重命名字段、字段过滤,比如我希望 username 字段重命名为 name,保留 sex 和 city 字段

那么,我可以这样写:

var data = [];// 假设的后台的数据

excel.filterExportData(data, {

username: 'name',

sex:'sex',

city: 'city'

});

excel.downloadExcel(data, '导出测试', 'xlsx');

调用样例

请见下方『使用方法』

功能概览:

支持梳理导出的数据并导出多种格式数据

使用方法:

注意:此扩展需先引入layui.js方可正常使用。demo详见index.html

js使用样例:

// 注:extends/excel.js的存放路径

layui.config({

base: 'extends/',

}).extend({

excel: 'excel',

});

layui.use(['jquery', 'excel', 'layer'], function() {

var $ = layui.jquery;

var layer = layui.layer;

var excel = layui.excel;

// 模拟从后端接口读取需要导出的数据

$.ajax({

url: 'list.json'

,dataType: 'json'

,success(res) {

var data = res.data;

// 重点!!!如果后端给的数据顺序和映射关系不对,请执行梳理函数后导出

data = excel.filterExportData(data, [

'id'

,'username'

,'experience'

,'sex'

,'score'

,'city'

,'classify'

,'wealth'

,'sign'

]);

// 重点2!!!一般都需要加一个表头,表头的键名顺序需要与最终导出的数据一致

data.unshift({ id: "ID", username: "用户名", experience: '积分', sex: '性别', score: '评分', city: '城市', classify: '职业', wealth: '财富', sign: '签名' });

var timestart = Date.now();

excel.downloadExcel(data, '导出接口数据', 'xlsx');

var timeend = Date.now();

var spent = (timeend - timestart) / 1000;

layer.alert('单纯导出耗时'+spent+'s');

}

,error() {

layer.alert('获取数据失败,请检查是否部署在本地服务器环境下');

}

});

});

导出数据返回样例:

此数据来自 layui 官方的表格样例

{

"code":0,

"msg":"",

"count":3,

"data":[

{

"id":10000,

"username":"user-0",

"sex":"女",

"city":"城市-0",

"sign":"签名-0",

"experience":255,

"logins":24,

"wealth":82830700,

"classify":"作家",

"score":57

},

{

"id":10001,

"username":"user-1",

"sex":"男",

"city":"城市-1",

"sign":"签名-1",

"experience":884,

"logins":58,

"wealth":64928690,

"classify":"词人",

"score":27

},

{

"id":10002,

"username":"user-2",

"sex":"女",

"city":"城市-2",

"sign":"签名-2",

"experience":650,

"logins":77,

"wealth":6298078,

"classify":"酱油",

"score":31

}

]

}

Demo说明:

index.html页面文件+JS处理文件

list.json模拟导出的数据

extends/authtree.js权限树扩展

layui/官网下载的layui

更新预告:

更新记录:

2018-12-14 v1.0 最初版本

特别感谢

暂无

layui 读取本地excel内容_layui-excel相关推荐

  1. 用 ABAP 读取本地文本文件内容试读版

    零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二 ...

  2. Electron教程(五)读取本地文件内容, icpMain icpRenderer 之间的交互

    Electron教程(五)读取本地文件内容, ipcMain ipcRenderer 之间的交互 Electron教程(一)什么是 Electron,由来.适用场景 和 Electron 的环境搭建 ...

  3. 办公自动化-如何使用VBA读取word的内容到excel?

    在检测行业经常会碰到这样的一种情况:客户,尤其是关键客户,希望每个月知道自己在第三方实验室做了多少份测试,每份测试报告做了哪些测试项目,每个测试项目的测试结果等等信息.那么客户的这种需求就涉及到需要对 ...

  4. 读文件 —— WEB前端读取本地文件内容哪些事(前台解析txt文件)……

    强制让浏览器允许JS读写本地文件--的操作! 问题描述: 让自己的浏览器允许js读写本地文件,尽可能多的兼容各种浏览器.(即本机的js文件读写本机的文件) 问题回复--1: 您的意思是不需要浏览器与用 ...

  5. 用 ABAP 读取本地文本文件内容

    用 ABAP 读取本地文件文本内容是一个常见的需求.假设我有一个文本文件,内容如下: 这个文件在本地存储的位置:"C:\temp\1.txt" 在跟随本文学习之前,请务必先学习完下 ...

  6. QML 读取本地文件内容

    QML 对本地文件的读写 QML 里似乎没有提供直接访问本地文件的模块,但是我们能够自己扩展 QML,给它加上访问本地文件的能力. Qt 官方文档对 QML 是这样介绍的: It defines an ...

  7. 保存页面文本到本地文件读取本地文件内容到页面

    问题描述:假设网页有个文本框之类的东西,想通过点击某一按钮后,将用户在文本框中输入的内容直接保存在本地某个文件中.同理,也想通过页面直接读取本地文件中的内容. 问题分析:因为整个处理过程不涉及到后台的 ...

  8. Java读取本地文件内容并输出

    下面是读取本地文件并输出内容的Java代码. 如果文件有中文,可能会乱码需要设置软件的编码格式. public static void readFile() {FileReader fileReade ...

  9. layui 读取本地excel内容_layui之数据表格--与后台交互获取数据的方法

    jsp或html js //用户列表 var tableIns = table.render({ elem: '#userList', url : 'userAction_findAll.action ...

  10. layui 读取本地excel内容_Python操作Excel基础(1)

    本节利用包openpyxl,实现Excel文件的读取.写入,以及创建Excel文件的基础操作. 操作逻辑 首先,生成一个Workbook对象,这个对象相当于是一个在内存中的Excel文件,它可以包含多 ...

最新文章

  1. tensorflow生成对抗网络
  2. my ax 4 faq
  3. java数据库编程(JDBC)
  4. 赋予用户最高权限的一点“挫折”
  5. 整个计算机系统结构图,计算机系统结构复习(16页)-原创力文档
  6. 【UML】——为什么要使用UML
  7. 服务器虚拟机声卡无法加载,Esxi虚拟机添加声卡
  8. Java中利用freemarker导出word表格并合并单元格
  9. 遂冀机器人_河北省电化教育馆关于举办河北省第五届中小学教育机器人暨创客竞赛活动的通知...
  10. 表单重复提交(前端未做单击防重复点击策略)
  11. 关于计算机的职业畅想,我的职业畅想作文
  12. docker(三)docker仓库
  13. java计算工作日_Java工作日计算工具类
  14. 开发一个电商网站大概多少钱
  15. mysql redo log 数据恢复_MySQL 怎么样恢复丢失的数据?redo log 写磁盘的过程
  16. 开发微信小程序都需要哪些资质?
  17. 购买本本前必读的十大注意
  18. linux 内核 视频 下载地址,Linux内核视频教程种子链接
  19. Linux内核(2)——子系统
  20. 构建嵌入式系统软件开发环境-VMware的安装及搭建嵌入式Linux开发环境

热门文章

  1. Linux 中有效用户组和初始用户组
  2. 美团点评CodeM编程大赛-题二
  3. PS练习7——蒙版的使用
  4. Alpha阶段敏捷冲刺⑥
  5. 艾宾浩斯遗忘曲线PHP,艾宾浩斯遗忘曲线计划表打印版
  6. ie浏览器flash player不能用的解决方案
  7. 英语作文计算机用途80词,初3英语作文_关于介绍电脑的英语作文,初三,80词左右。急!!!...
  8. 再见笨重的ELK!这套轻量级日志收集方案要火!
  9. Android仿京东地址省市区选择器
  10. WindowsPhone8常见问题及使用技巧