html导出excel合并单元格,JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作...
参考链接:
https://blog.csdn.net/weixin_33724046/article/details/89611397
https://www.cnblogs.com/lvsk/p/11970747.html
https://www.jianshu.com/p/5c131c27841c
https://blog.csdn.net/tian_i/article/details/84327329
原表
目标导出格式:
引用文件js-xlsx相关依赖(如果找不到去github上或者官网上找):
View Code
单元格格设置相关属性:
相关文档:
使用代码(以ajax调用返回数据为例):
$.ajax({
url: ‘/api/‘,
type: ‘POST/GET‘,
dataType: ‘json‘,
data: postData,
success: function (res) {
var d = res.data; //返回的数据 table样式
// 1. 数组头部新增表头(重命名)
res.data.unshift({
id: ‘ID‘, name:‘姓名‘,‘age‘:‘年龄‘ ,‘course‘:‘课程‘,‘grade‘:‘成绩‘
});
//创建book
var workbook = XLSX.utils.book_new();
//json转sheet
var workSheet = XLSX.utils.json_to_sheet(res.data, { header: [], skipHeader: true });
// 获取数据的长度
var y = d.length;
//导出表格有多少列,同EXCEL的命名一致,这里是三列
var sheetTable = ["A","B","C","E","F"];
for (var j = 0; j < sheetTable.length; j++) {
var sheetHead = sheetTable[j];
for (var i = 0; i < y; i++) {
var rowname = i + 1;
var sheetName = sheetHead + "" + rowname;
//设置相关单元格居中显示,和自适应还可以设置其他属性
workSheet[sheetName].s = { alignment: { vertical: "center", horizontal: "center",wrapText:true } };
}
}
//单元格合并,设置单元格合并的配置
const merge = res.pzconfig; //这里在后台已经设置好合并规则,也可在前端进行规则设置,设置方法后序介绍
workSheet[‘!merges‘] = merge;
//设置每列的长度
workSheet["!cols"] = [{
wpx: 80
}, {
wpx: 80
}, {
wpx: 80
}, {
wpx: 80
}, {
wpx: 80
}]; //单元格列宽
//增加一个工作簿,也可根据业务增加多个工作簿
XLSX.utils.book_append_sheet(workbook, workSheet, ‘导出数据‘);
//这里以时间戳命名导出的文件
var timestamp = (new Date()).getTime();
//导出EXCEL
XLSX.writeFile(workbook, "file" + timestamp + ".xlsx");
},
error: function (res) {
//错误提示
}
});
});
单元格横向或纵向合并的方法:
//根据需要显示的内容设置合并规则,这里仅以文章需要达成的目标设置规则
var mergeConfig =
[
//列数据相同的进行合并(根据业务逻辑设置规则)
//行列下标都从0开始的,由于第一行是标题,所以合并从第二行开始。
//第四列和第五列不需要合并(因为展示的是学科和成绩)
//合并(1,2,3列)第二行和第三行数据
//第一列的(第二行和第三行数据)
{
s: { c: 0, r: 1 },
e: { c: 0, r: 2 }
},
//第二列(第二行和第三行数据)
{
s: { c: 1, r: 1 },
e: { c: 1, r: 2 }
},
//第三列(第二行和第三行数据)
{
s: { c: 2, r: 1 },
e: { c: 2, r: 2 }
},
//合并(1,2,3列)第四行和第六行数据
//第一列(第四行和第六行数据)
{
s: { c: 0, r: 3 },
e: { c: 0, r: 5 }
},
//第二列(第四行和第六行数据)
{
s: { c: 1, r: 3},
e: { c: 1, r: 5 }
},
//第三列(第四行和第六行数据)
{
s: { c: 2, r: 3 },
e: { c: 2, r: 5 }
},
//合并(1,2,3列)第七行数据
//第一列(第7行数据)
{
s: { c: 0, r: 6 },
e: { c: 0, r: 6 }
},
//第二列(第7行数据)
{
s: { c: 1, r: 6 },
e: { c: 1, r: 6 }
},
//第三列(第7行数据)
{
s: { c: 2, r: 6 },
e: { c: 2, r: 6 }
},
//如果要和并列的话,可以设 行不变,合不同的列,如下(合并第七行的第三列到第六列):
// {
// s: { c: 2, r: 6 },
// e: { c: 5, r: 6 }
// },
]
原文:https://www.cnblogs.com/dosoftwarey/p/14877865.html
html导出excel合并单元格,JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作...相关推荐
- JAVA导出Excel通用工具类——第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选、动态合并横向(纵向)单元格等多种复杂情况——保姆级别,真的不能再详细了,代码拿来即用)
JAVA导出Excel通用工具--第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选.动态合并横向(纵向)单元格等多种复杂情况--保姆级别,真的不能再详细了,封装通用工具类,代码拿 ...
- java使用jxl生成excel表格,jsp使用js下载excel文件xls
java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...
- EasyPlayer.js如何实现动态设置解码H.265音频?
视频平台EasyCVR.EasyGBS.EasyDSS.EasyNVR等均集成了我们自主研发的EasyPlayer视频流媒体系列播放器,可支持H.264/H.265视频编码,并拥有多个版本包括Easy ...
- excel表格行列显示十字定位_excel如何设置点击任意一个单元格会出现一个十字架标明所点击单元格的横和列...
展开全部 按ALT+F11,输入如下代码(建议复制粘贴,不易出现手误):Private Sub Worksheet_SelectionChange(ByVal Target As Range) If ...
- JQuery/JS select标签动态设置选中值、设置禁止选择 button按钮禁止点击 select获取选中值...
//**1.设置选中值:(根据索引确定选中值)**// var osel=document.getElementById("selID"); //得到select的IDvar op ...
- js给iframe动态设置src和参数参数传递问题
最近开始接触到一个挺老项目,其中涉及到了一些jsp代码编写, 其中遇到一个问题比较麻烦,就是在jsp页面中iframe 的src属性动态修改的问题 页面:hello.jsp,table.jsp 页面上 ...
- html统计表合并单元格的快捷键,excel中合并单元格的快捷键的方法及设置技巧
快捷键的熟练使用可以帮助我们在工作中提高效率,接下来为您讲解合并单元格的快捷键设置方法的图文演示 合并单元格在excel默认的情况下是没有快捷键的. 需要用以下方法设置 1.打开excel,选择工具- ...
- jqgrid 动态设置单元格不可编辑
单元格可编辑需要设置3个地方 1.tableGrid里面的参数 cellEdit:true(开启行编辑功能) false(默认,不可编辑) 2.cellsubmit: 'clientArray' 设 ...
- 四种利用js导出Excel的方法(兼容IE6+、主流浏览器、支持复杂表头和合并单元格)
因为项目需求变更,最后决定使用做JS导出Excel,网上看了很多的帖子和例子,很多的例子并不能满足需求( 处理复杂表头,兼容主流浏览器,兼容IE等等).所以,自己找了几个比较不错的例子,在其基础上结合 ...
最新文章
- 详解H3C交换机“端口安全”功能
- php 时间函数详解,PHP时间函数date()详解
- python输入y继续运行_python – 如何使Fabric在获取退出状态后继续运行下一个命令:1?...
- 体验Hadoop3.0生态圈-CDH6.1时代的来临
- 中石油训练赛 - Count the Even Integers(Java高精度运算+找规律)
- Table.Rows.Remove(dr)和Table.Delete()的区别
- 关于axios请求报400如何获取报错信息
- 字符串大写转小写库函数_PHP程序无需使用库函数即可将字符串转换为大写
- 四维的王坚和三维的阿里互联网汽车
- Google Maps 补丁绕过、得双倍奖金这么简单?我陷入了自我怀疑
- 清空数据库中的某个表中数据
- Bridge(桥模式)
- ASP.NET中实现无刷新级联
- Python——利用协程实现视频的拖影效果
- java实现基金浮动_Java: 实现自回归分析/线性回归分析/基金各项指标计算等
- 磁盘阵列RAID技术超详细解读
- 爬虫之获取各大网站热搜并实现语音播报
- iPhone 界面尺寸以及各种图表尺寸
- 微信论坛交流小程序系统毕业设计毕设(4)开题报告
- 未来教师会被计算机代替,未来老师会被计算机所取代吗?Will The Teacher be Replaced by Computers in the Future-...