-
2021-07-02 11:16:04
js导出Excel的方法
利用html的table表格的格式书写想要的excel格式
获取table的内容并组装成一个xls格式的字符串
利用Blob对象生成一个xls格式的文件
利用a标签的download属性创建文件名,并下载到本地
将字符串转成xls文件,本文主要利用Blob对象和URL.createObjectURL() 方法
Blob对象表示不可变的类似文件对象的原始数据。Blob表示不一定是JavaScript原生形式的数据。 File 接口基于Blob,继承了 blob的功能并将其扩展使其支持用户系统上的文件。
URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。
下面是个例子
//导出excel
export const tableToExcel = (tableDom,filename)=>{
if (!tableDom || tableDom.nodeType!=1){
return new Error('tableDom type error!')
}
var oHtml = tableDom.outerHTML;
var excelHtml = `
.tableA {
border-collapse: collapse;
}
.tableA .title th{
height: 50px;
font-size: 24px;
font-family: '微软雅黑';
font-weight: 700;
}
.tableA tr th {
border: 1px #000 solid;
height: 40px;
background: #efefef;
}
.tableA tr td {
padding: 0 40px;
border: 1px #000 solid;
height: 40px;
text-align: center;
}
.tableA .footer td {
font-size: 20px;
font-weight: 700;
}
${oHtml}
`;
var excelBlob = new Blob([excelHtml], { type: 'application/vnd.ms-excel' });
// 创建一个a标签
var oA = document.createElement('a');
// 利用URL.createObjectURL()方法为a元素生成blob URL
oA.href = URL.createObjectURL(excelBlob);
// 给文件命名
oA.download = filename+'.xls';
// 模拟点击
oA.click();
}
另一种方式
使用window.btoa将字符转换成base64,然后将a标签的href设置为 'data:application/vnd.ms-excel;base64,'+base64编码的数据,使用a标签的download进行下载。
在个浏览器中,使用window.btoa对Unicode字符串进行编码都会出发一个字符越界的异常,解决方法是,先把Unicode字符串转换为UTF-8编码。如下方法
function utf8_to_b64( str ) {
return window.btoa(unescape(encodeURIComponent( str )));
}
function b64_to_utf8( str ) {
return decodeURIComponent(escape(window.atob( str )));
}
// Usage:
utf8_to_b64('? à la mode'); // "4pyTIMOgIGxhIG1vZGU="
b64_to_utf8('4pyTIMOgIGxhIG1vZGU='); // "? à la mode"
//译者注:在js引擎内部,encodeURIComponent(str)相当于escape(unicodeToUTF8(str))
//所以可以推导出unicodeToUTF8(str)等同于unescape(encodeURIComponent(str))
下面一个例子
var tableToExcel = function(table,name){
var uri = 'data:application/vnd.ms-excel;base64,',
template = '
',base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },
format = function(s, c) { return s.replace(/{(\w+)}/g,function(m, p) { return c[p]; }) }
if (!table.nodeType) table = document.getElementById(table)
var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
let a = document.createElement('a');
a.href = uri + window.btoa(unescape(encodeURIComponent('\uFEFF'+format(template,ctx))));
a.download = 'aaa.xls'
a.click();
}
更多相关内容 -
javaScript 导出excel文件
2014-12-06 12:01:19javascrit 导出excel表格好东西,用的着的时候就来找找吧 -
js网页表格导出excel文件代码
2021-07-24 23:44:54js网页表格导出excel文件代码是一款基于js实现的网页table表格导出Excel文件代码。 -
HTML用JS导出Excel的五种方法.javascript导出excel的5种方法
2021-01-09 11:25:13HTML用JS导出Excel的五种方法.javascript导出excel的5种方法 -
js导出excel文件的简洁方法(推荐)
2020-10-21 05:13:32下面小编就为带来一篇js导出excel文件的简洁方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
js导出excel文件,支持chrome、ie、firefox等主流浏览器
2020-09-04 13:00:15js导出excel文件,支持chrome、ie、firefox等主流浏览器 js导出excel文件,支持chrome、ie、firefox等主流浏览器 -
JavaScript导出excel文件,并修改文件样式
2020-05-28 09:13:06excel 文件,并且对导出文件的样式进行一些修改,比如颜色、字体、合并单元格等,所以我找到了 xlsx-style 这个项目,它可以对导出的 excel 文件进行一些样式上的修改,这个项目是 SheetJS 的一个分支。其实 SheetJS...说明
因为最近需要实现前端导出
excel
文件,并且对导出文件的样式进行一些修改,比如颜色、字体、合并单元格等,所以我找到了 xlsx-style 这个项目,它可以对导出的excel
文件进行一些样式上的修改,这个项目是 SheetJS 的一个分支。其实 SheetJS 也是支持修改导出文件的样式的,不过是在它的专业版中, SheetJS 分为社区版和专业版的,社区版是开源的,但是却不支持修改导出文件的样式,专业版拥有更多的功能,这其中就包括修改样式,但是如果需要使用专业版,要邮件联系 SheetJS 的开发者,去咨询价格,购买它。下来说说如何使用 xlsx-style ,导出
excel
文件,并修改样式。安装
浏览器:
<script src="dist/xlsx.full.min.js"></script>
npm:
npm install xlsx-style --save
如果
npm
安装时出现如下报错,需要修改源码:
1、在\node_modules\xlsx-style\dist\cpexcel.js
807行把var cpt = require('./cpt' + 'able');
改成var cpt = cptable;
2、在
\node_modules\xlsx-style\ods.js
10行和13行把路径改为require('./xlsx')
bower:
bower install js-xlsx-style#beta
单元格对象、工作表对象和工作簿对象解释
Cell Object
Cell Object
指单元格对象,格式为{c:C, r:R}
,其中C
代表列号,R
代表行号。
例如单元格B5
用对象表示就是{c:1, r:4}
。单元格范围用对象表示为
{s:S, e:E}
,其中S
表示第一个单元格对象,E
表示最后一个单元格对象。
例如单元格范围A3:B7
由对象表示就是{s:{c:0, r:2}, e:{c:1, r:6}}
。在工作表对象中设置一个单元格对象,是以编码后的单元格为属性,进行设置。
例如://设置A1单元格的值是123,类型是字符串,字体颜色是FF0187FA worksheet["A1"] = { v: "123", t: "s", s: { font: { color: { rgb: "FF0187FA" } }, } }
v
:单元格的值
t
:单元格的类型'b'
布尔值、'n'
数字、'e'
错误、's'
字符串、'd'
日期
s
:单元格的样式单元格的属性不止有
v
、t
、s
这个三个属性,还有其他属性,具体看这里,但是实现导出功能,使用这三个已经足够了。在
XLSX.utils
对象中有一些方法可以对单元格和单元格范围进行转化。//编码行号 XLSX.utils.encode_row(2); //"3" //解码行号 XLSX.utils.decode_row("2"); //1 //编码列标 XLSX.utils.encode_col(2); //"C" //解码列标 XLSX.utils.decode_col("A"); //0 //编码单元格 XLSX.utils.encode_cell({ c: 1, r: 1 }); //"B2" //解码单元格 XLSX.utils.decode_cell("B1"); //{c: 1, r: 0} //编码单元格范围 XLSX.utils.encode_range({ s: { c: 1, r: 0 }, e: { c: 2, r: 8 } }); //"B1:C9" //解码单元格范围 XLSX.utils.decode_range("B1:C9"); //{s:{c: 1, r: 0},e: {c: 2, r: 8}}
Worksheet Object
Worksheet Object
指工作表对象,这个对象中每个不以!
开头的属性,都代表一个单元格。
例如worksheet["A1"]
返回A1
单元格对象。worksheet['!ref']
:表示工作表范围的字符串。
例如:
worksheet['!ref'] = "A1:B5"
worksheet['!cols']
:存储列对象的数组,可以在这里设置列宽。
例如:
//wpx 字段表示以像素为单位,wch 字段表示以字符为单位 worksheet['!cols'] = [ { wpx: 200 }, //设置第1列列宽为200像素 { wch: 50 }, //设置第2列列宽为50字符 ];
worksheet['!merges']
:存储合并单元格范围的数组。
例如:
//合并B2到D4范围内的单元格 worksheet['!merges'] = [ { s: { c: 1, r: 1 }, //B2 e: { c: 3, r: 3 }, //D4 } ]
worksheet['!freeze']
:冻结单元格。
例如:
//冻结第一行和第一列: worksheet['!freeze'] = { xSplit: "1", //冻结列 ySplit: "1", //冻结行 topLeftCell: "B2", //在未冻结区域的左上角显示的单元格,默认为第一个未冻结的单元格 state: "frozen" }
以下是打印相关的设置
worksheet['!rowBreaks']
:行分页数组。
例如:
//第一行为一页,第二行和第三行为一页,第三行之后为一页 worksheet['!rowBreaks'] = [1,3]
worksheet['!colBreaks']
:列分页数组。
例如:
//第一列为一页,第二列和第三列为一页,第三列之后为一页 worksheet['!colBreaks'] = [1,3]
worksheet['!pageSetup']
:设置缩放大小和打印方向的对象。
例如:
//缩放100%,打印方向为纵向 worksheet['!pageSetup'] = { scale: '100', orientation: 'portrait' } // orientation 取值如下: // 'portrait' - 纵向 // 'landscape' - 横向
worksheet['!printHeader']
:需要重复的第一行和最后一行索引的数组,用于分页时重复打印表头。
例如:
//分页时重复打印第一行 worksheet['!printHeader'] = [1,1]
Workbook Object
Workbook Object 指工作簿对象。
workbook.SheetNames
:存储工作表名称的数组。workbook.Sheets
:存储工作表对象的对象。workbook.Sheets[sheetname]
:返回对应名称的工作表对象。
单元格样式
设置单元格的样式,就是设置工作表对象中的单元格对象的
s
属性。这个属性的值也是一个对象,它有五个属性:fill
、font
、numFmt
、alignment
和border
。样式属性 子属性 值 描述 fill patternType PatternTypes
图案样式 bgColor COLOR_SPEC
背景色,设置填充时的图案颜色 fgColor COLOR_SPEC
前景色,单元格的背景颜色 font name 表示字体名称的字符串 字体名称,默认值是 "Calibri"
sz 表示字号的数字 字号 color COLOR_SPEC
字体颜色 bold true
或false
加粗 underline true
或false
下划线 italic true
或false
倾斜 strike true
或false
删除线 vertAlign 'superscript'
或'subscript'
上标 或 下标 numFmt 字符串或数字 对数字类型的单元格进行格式化 alignment vertical "bottom"
、"center"
或"top"
垂直对齐 horizontal "left"
、"center"
或"right"
水平对齐 wrapText true
或false
自动换行 readingOrder 0
、1
或2
文字方向 textRotation 数字, 0
至180
或255
(默认为0
)文本旋转角度 45
逆时针旋转45度 90
逆时针旋转90度 135
顺时针旋转45度 180
顺时针旋转90度 255
垂直排列 border top { style: BORDER_STYLE, color: COLOR_SPEC }
上边框样式 bottom { style: BORDER_STYLE, color: COLOR_SPEC }
下边框样式 left { style: BORDER_STYLE, color: COLOR_SPEC }
左边框样式 right { style: BORDER_STYLE, color: COLOR_SPEC }
右边框样式 diagonal { style: BORDER_STYLE, color: COLOR_SPEC }
对角线样式 diagonalUp true
或false
上对角线 diagonalDown true
或false
下对角线 PatternTypes
PatternTypes
指填充时的图案样式,取值如下:none solid darkGray mediumGray lightGray gray125 gray0625 darkHorizontal darkVertical darkDown darkUp darkGrid darkTrellis lightHorizontal lightVertical lightDown lightUp lightGrid lightTrellis
在
Excel
中点击单元格,选择设置单元格格式,点击填充会出现图案样式选项。COLOR_SPEC
COLOR_SPEC
指设定颜色的对象,取值如下:{ rgb: "FFFFAA00" }
十六进制ARGB值,这里有一个网页可以进行颜色值转换{ theme: "1"}
主题颜色的整数索引,默认是0
。
numFmt
样式属性
numFmt
的作用是对数字类型的单元格进行格式化。在 xlsx-style 中内置一个table_fmt
对象,这个对象存储了一些进行格式化的规则。var table_fmt = { 0: 'General', 1: '0', 2: '0.00', 3: '#,##0', 4: '#,##0.00', 9: '0%', 10: '0.00%', 11: '0.00E+00', 12: '# ?/?', 13: '# ??/??', 14: 'm/d/yy', 15: 'd-mmm-yy', 16: 'd-mmm', 17: 'mmm-yy', 18: 'h:mm AM/PM', 19: 'h:mm:ss AM/PM', 20: 'h:mm', 21: 'h:mm:ss', 22: 'm/d/yy h:mm', 37: '#,##0 ;(#,##0)', 38: '#,##0 ;[Red](#,##0)', 39: '#,##0.00;(#,##0.00)', 40: '#,##0.00;[Red](#,##0.00)', 45: 'mm:ss', 46: '[h]:mm:ss', 47: 'mmss.0', 48: '##0.0E+0', 49: '@', 56: '"上午/下午 "hh"時"mm"分"ss"秒 "' };
numFmt
的取值如下:- 1、
table_fmt
对象的属性值。
例如:
worksheet["A1"].s.numFmt = "0.00%";
- 2、
table_fmt
对象的属性名对应的数字。
例如:
worksheet["A1"].s.numFmt = 0;
- 3、
Excel
内置规则对应的字符串。
例如:
worksheet["A1"].s.numFmt = "yyyy/m/d h:mm";
在
Excel
中对应的操作就是,右键单元格,选择设置单元格格式,选择自定义,选择yyyy/m/d h:mm
类型。- 4、如果熟悉
Excel
中的自定义格式,可以使用自定义格式的字符串。
例如:
//单元格输入1时显示男,输入0时显示女 worksheet["A1"].s.numFmt = '[=1]"男";[=0]"女"';
在
Excel
中对应的操作就是,右键单元格,选择设置单元格格式,选择自定义,在类型中输入[=1]"男";[=0]"女"
。
readingOrder
样式属性
alignment
的子属性readingOrder
表示单元格的文字方向。语言的阅读与书写顺序并不都是从左到右的,比如阿拉伯语就是从右到左的。readingOrder
的取值如下:0
:根据内容决定1
:从左到右2
:从右到左
在
Excel
中对应的操作就是,右键单元格,选择设置单元格格式,在对齐选项中设置文字方向。BORDER_STYLE
BORDER_STYLE
是用来设置边框样式的一个字符串,可用取值如下:-
thin
-
medium
-
thick
-
dotted
-
hair
-
dashed
-
mediumDashed
-
dashDot
-
mediumDashDot
-
dashDotDot
-
mediumDashDotDot
-
slantDashDot
-
double
合并单元格的边框是合并区域内的每个单元格指定的。因此,如果需要设置3x3单元格合并后的单元格边框,需要为8个不同的单元格设置边框:
- 左侧单元格的左边框
- 右侧单元格的右边框
- 顶部单元格的上边框
- 底部单元格的下边框
导出文件
xlsx-style 有两个输出数据的方法
write
和writeFile
方法,需要注意的是writeFile
方法需要基于node
环境才可以使用。XLSX.write(workbook, wopts); XLSX.writeFile(workbook, filename, wopts);
filename:
writeFile
方法需要传入filename
参数,也就是要创建文件的名称,也可以是路径。
例如:XLSX.writeFile(workbook, "out.xlsx", wopts); XLSX.writeFile(workbook, "./folder/out.xlsx", wopts);
wopts:
属性名 默认值 描述 type 输出数据类型(请参见下面的输出类型) cellDates false 将日期存储为类型 'd'
(默认为'n'
)bookSST false 是否生成共享字符串表 bookType 'xlsx'
工作簿的类型( xlsx
、xlsm
或xlsb
)showGridLines true 是否显示网格线 Props null 工作簿的属性 type:
值 描述 "base64"
Base64编码 "binary"
二进制字符串 "buffer"
nodejs
缓冲区"file"
直接创建文件( node
环境下有效)如果使用
write
方法需要设置type
属性,而且如果设置type
属性为file
,还需要在wopts
参数中增加一个file
属性,值是要创建文件的路径。如果使用
writeFile
方法不需要设置type
属性,因为在 xlsx-style 的源码中已经将type
属性设置为file
了, 而且使用这个方法,也不需要在wopts
参数中设置bookType
属性,因为bookType
是通过第二个参数filename
来判断的。bookSST:
bookSST
设置为true
时会生成共享字符串表。
SST
指共享字符串表,一个工作簿可能有成千上万个包含字符串(非数字)数据的单元格。而这些单元格中可能有许多重复数据。实现共享字符串表是为了通过仅读取和写入重复数据一次来提高打开和保存文件的性能。
更详情的解释可以参阅以下内容:
Working with the shared string table (Open XML SDK)
Exporting to excel using xlsx library and SSTProps:
Props
可以设置为一个对象,存入以下与工作簿相关的信息:属性名 描述 "title"
标题 "subject"
主题 "creator"
创建者 "keywords"
关键字 "description"
描述 设置这些属性后,在
Excel
中点击文件,选择信息,然后点击属性,然后再点击高级属性,最后选择摘要就可以看到了。使用
write
方法实现下载:var wopts = { bookType: 'xlsx', type: 'binary' }; var wbout = XLSX.write(workbook, wopts); function s2ab(s) { var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf); for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; return buf; } var blob = new Blob([s2ab(wbout)], { type: "application/octet-stream" }); function saveAs(obj, filename) { var link = document.createElement("a"); link.download = filename; link.href = URL.createObjectURL(obj); link.click(); URL.revokeObjectURL(obj); } saveAs(blob, "out.xlsx");
原理就是,把
write
方法输出的数据,用s2ab
方法转为 Uint8Array 对象,然后通过 new Blob 再得到一个 Blob 对象,再通过 URL.createObjectURL 方法将 Blob 对象 作为参数,得到一个对象URL,最后把对象URL设置为临时的一个a
链接的href
属性值,实现下载功能。使用
writeFile
方法实现下载:XLSX.writeFile(workbook, "out.xlsx");
虽然看上去使用
writeFile
方法要比write
方法简单很多,但是要注意writeFile
方法只能在node
环境下使用。总结
前端导出
excel
文件,并修改导出文件样式的功能最重要的就是准备好符合结构的工作簿对象(Workbook Object
),在这个步骤设定好要导出文件的样式,而后面的步骤都是固定的函数,就比较简单了。文中
Excel
相关的截图,均是在Microsoft Excel 2016
版截取的,不同版本的Excel
显示可能稍有不同。如果你觉得 xlsx-style 的功能还不够全面,不能实现你需求,这里再推荐一个项目 ExcelJS,这个项目的功能更加全面,而且项目也还在维护,可以试试看能否满足需求。
-
vue.js导出Excel所需要的JS文件 修改当前为当前日期
2019-05-14 16:11:35当vue.js需要导出Excel文件时,需要的Blob.js和Export2Excel.js -
EasyUI 结合JS导出Excel文件的实现方法
2021-01-19 16:11:35这里我主要讲EasyUI内的DataGrid如何结合JS导出Excel文件 一、 导出Excel的核心代码段如下所示 function Exproter() { //获取Datagride的列 var rows = $('#test').datagrid('getRows'); var oXL = new ... -
js 导出excel(.xls格式)
2020-10-21 15:08:09为了减轻服务器的压力,很多网站采用的js下载或导出数据的方式...该文件就是利用javascript把json数据转换成excel数据后,并进行了下载。 真实可用,而且使用起来方便快捷,为了开发快速,可以下载看看。 里面有教程的 -
原生Js导出Excel文件
2021-08-19 15:02:09我们在开发过程中会遇到下载excel文件的需求,特别是后台管理的项目。 首先我们先安装一下组件 npm install js-export-excel or yarn add js-export-excel 然后在需要使用的地方引入 const ExportJsonExcel = ...我们在开发过程中会遇到下载excel文件的需求,特别是后台管理的项目。
首先我们先安装一下组件
npm install js-export-excel or yarn add js-export-excel
然后在需要使用的地方引入
const ExportJsonExcel = require("js-export-excel"); or import ExportJsonExcel from "js-export-excel";
下面拿个案例
<template> <div class="add"> <button @click="exportExcel">点击下载</button> </div> </template> <script> import ExportJsonExcel from "js-export-excel"; export default { data(){ return{ selections:[ {'index':'0',"num": "100", "name": "苹果"}, {'index':'1',"num": "50", "name": "橘子"}, {'index':'2',"num": "330", "name": "香蕉"} ] } }, methods: { //定义导出Excel表格事件 exportExcel: function () { var data = this.selections;//选中的数据 let dataTable = []; if (data && data.length > 0) { for (let i in data) { if (data[i]) { let obj = { 索引: data[i].index, 数量: data[i].num, 商品: data[i].name }; dataTable.push(obj); } } this.exportToExcel(dataTable); } }, exportToExcel (dataTable) { var option = {}; option.fileName = "商品数量"; option.datas = [ { sheetData: dataTable, sheetName: "sheet", sheetFilter: [ "索引", // 要和上面定义的对应 "数量", "商品" ], sheetHeader: [ "索引", "数量", "商品" ] } ]; var toExcel = new ExportJsonExcel(option); toExcel.saveExcel(); } } } </script>
-
JS导出导入Excel文件插件,简单易用
2019-03-01 10:16:34JS导出导入Excel文件插件, 简单好用,含有Demo,运行就懂! -
js 导出Excel文件乱码问题
2021-03-16 17:23:23$.ajax({ type: 'post', url: "", xhrFields: { responseType: "blob" }, // 主要是这一句 data: {}, success: function(data) { that.download(data,'自己起的名字.xlsx') } }) }, download(data, fileName...$.ajax({ type: 'post', url: "", xhrFields: { responseType: "blob" }, // 主要是这一句 data: {}, success: function(data) { that.download(data,'自己起的名字.xlsx') } }) }, download(data, fileName) { if (!data) { return } let url = window.URL.createObjectURL(new Blob([data])) let link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', fileName); document.body.appendChild(link); link.click(); }
-
js基于FileSaver.js 浏览器导出Excel文件的示例
2020-10-19 08:59:23本篇文章主要介绍了js基于FileSaver.js 浏览器导出Excel文件的示例,具有一定的参考价值,有兴趣的可以了解一下 -
js 导出excel(支持大量数据)
2018-11-02 23:31:55前端导出数据为excel(兼容chrome 和 IE10以上版本),列举了网上常用的两种方法外,新增了可以导出超过5W行数据的方法 -
js导出excel文件
2020-09-09 14:36:07//之前ie低版本浏览器的导出excel,内含ie独有方法 function exportExcel(id){ var obj = document.getElementById(id); window.clipboardData.setData("Text",obj.innerHTML); var oXL = new ... -
layui导出excel的js文件
2019-11-15 23:14:30layui导出excel的js文件layui导出excel的js文件layui导出excel的js文件layui导出excel的js文件layui导出excel的js文件layui导出excel的js文件 -
js 导出 Excel 测试 demo【支持大量数据导出,10w条数据大约3秒】
2020-12-21 14:15:13js 导出 Excel 【支持大量数据导出,亲测】、支持IE噢 -
js导出excel.zip
2020-04-22 18:24:22包含easyui,datagrid的列表导出,支持多表头,数据值格式化。QUICKUI,QUIGRID导出,导出excel格式为:xls。 -
vue.js导出Excel所需要的JS文件
2019-01-11 16:48:06当vue.js需要导出Excel文件时,需要的Blob.js和Export2Excel.js. -
JS导出Excel文件的方式
2020-12-03 17:34:02js导出Excel文件的方式有哪些: href拼接参数导出(不安全,别人可以通过拼接请求攻击你的数据库等): window.location.href = URL+拼接所需参数 通过post提交from表单的方式(建议使用该方式): 注意:不要添加... -
如何最简单的解决JS导出Excel文件的操作
2020-09-10 17:01:03你给他做数据报表,他还好死不死一定要你能导出Excel表格。 而且导出的还是条件内的所有数据??? 但是没办法,谁叫别人是甲方爸爸呢?虽然是各式各样奇怪的需求,但是我们还是要尽力满足 结果晚上找了对应的代码,... -
js实现Excel导出
2019-03-01 14:10:22最近在做一个项目,涉及到导出数据到Excel表格,由于是采用的前后端分离模式开发的,之前常用的方法已经失效,在网上找了一些资料和方法,已经完成整理,都能正常使用 -
JS导出Excel文件(数据量过大会导致网页崩溃导出失败)
2020-12-19 06:38:05function JSONToExcelConvertor(JSONData, FileName) {//先转化jsonif (JSONData.length == 0) {layer.msg("请选择导出的数据!");return false;}var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData)... -
ExcelJs导出Excel文件并设置单元格样式
2021-09-29 09:43:43下载exceljs并引入 数据源格式:二维数组,null值是后面要合并单元格的,占个位置。 //创建对象 var wb = new ExcelJS.Workbook(); //创建一个名称为Sheet1的sheet页,并填充背景色为红色 var ws = wb....