vue2前端导出带背景色表格 xlsx xlsx-style

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
configureWebpack: {resolve:{
fallback: {
fs: false,
},
},
externals:{
'./cptable': 'var cptable'
},
}
})

<script>
// @ is an alias to /src
import { utils } from 'xlsx';
import XLSXS from "xlsx-style";
import FileSaver from "file-saver";
export default
{
name: 'HomeView',
data()
{
return {
tableList: [
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
id: 0,
},
{
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄',
id: 1,
},
{
date: '2017-05-01',
name: '王小虎',
id: 2,
address: '上海市普陀区金沙江路 1511111 弄'
},
{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄',
id: 3
}, ]
}
},
methods:
{
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;
}, print()
{ let wb = utils.table_to_book(document.querySelector("#table1"), { sheet: "分组表" }); this.setExlStyle(wb["Sheets"]["分组表"]);
this.setbgColor(wb["Sheets"]["分组表"]);
console.log(wb);
var ws = XLSXS.write(wb,
{
type: "binary",//node.js6以上,写buffer会报nodeBuffer不支持
});
try
{
FileSaver.saveAs(
new Blob([this.s2ab(ws)], { type: "application/octet-stream" }),
'5.xlsx'
);
}
catch (e)
{
if (typeof console !== "undefined")
console.log(e, ws);
}
return ws;
},
setExlStyle(data)
{
let borderAll = {
//单元格外侧框线
top:
{
style: "thin",
},
bottom:
{
style: "thin",
},
left:
{
style: "thin",
},
right:
{
style: "thin",
},
};
data["!cols"] = [];
for (let key in data)
{
if (data[key] instanceof Object)
{
data[key].s = {
border: borderAll,
alignment:
{
horizontal: "center", //水平居中对齐
vertical: "center",
},
font:
{
sz: 11,
},
bold: true,
numFmt: 0, }; data["!cols"].push({ wpx: 115 });
}
}
return data;
},
//根据条件改变背景
setbgColor(ws)
{ let borderAll = {
//单元格外侧框线
top:
{
style: "thin",
},
bottom:
{
style: "thin",
},
left:
{
style: "thin",
},
right:
{
style: "thin",
},
};
let arr = ["A", "B", "C", "D"];
for (let i = 1; i <= this.tableList.length; i++)
{
for (let key in arr)
{
var key1 = 'A' + i;
var key2 = arr[key] + i; var val = ws[key1];
if (val.v % 2 == 0)
{
ws[key2].s = {
border: borderAll,
alignment:
{
horizontal: "center", //水平居中对齐
vertical: "center",
}, bold: true,
numFmt: 0,
font:
{
name: 'Arial',
sz: 10,
bold: true,
color: { rgb: "FFFFFFFF" }
},
fill:
{
//背景色
bgColor: { rgb: "FF59AB44" },
fgColor: { rgb: "FF59AB44" },
},
}
}
}
}
return ws;
}
}
vue2前端导出带背景色表格 xlsx xlsx-style的更多相关文章
- xlsx纯前端导出表格,完善边框等样式
仅用xlsx是无法实现文字样式及表格边框的style的,因此配合使用xlsx-style 以下源码直接复制过去用 // 源码什么的都不需要改动 import * as XLSXStyle from ' ...
- Java导出带格式的Excel数据到Word表格
前言 在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用 ...
- 如何通过Java导出带格式的 Excel 数据到 Word 表格
在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件.但是如果表格比较长,内容就会存在一定程度的丢失,无法 ...
- 用NPOI实现导入导出csv、xls、xlsx数据功能
用NPOI实现导入导出csv.xls.xlsx数据功能 直接上代码 首先定义一个接口 如果需要直接操作文件的话,就自己在封装一次 然后定义csv类的具体实现 这个需要引入命名空间LumenWo ...
- java实现文件批量导入导出实例(兼容xls,xlsx)
1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...
- vue2.0 导出Excel表格数据
1.安装三个依赖包 npm install -S file-saver npm install -S xlsx npm install -D script-loader 2.在项目中创建一个文件夹(比 ...
- 前端导出excel表格
前言近期项目有个新需求--将折线图表的数据加一个下载成excel表格的功能.以前下载功能都是调后台接口的,但是这个迭代,后台压力比较重,部分就交给了前端自己实现,下面就记录一下前端如何实现excel表 ...
- C# 将DataGridView中显示的数据导出到Excel(.xls和.xlsx格式)—NPOI
前言 https://blog.csdn.net/IT_xiao_guang_guang/article/details/104217491 本地数据库表中有46785条数据,测试正常 初次运行程 ...
- 导出带图片的Excel——OOXML文件分析
需求: 普通js导出文件excel具有兼容性问题,通过js-xsl导出文件API未找到导出图片的方案,实例过少,因此针对07年后以.xlsx后缀的excel文件,通过修改后缀.zip参考文件模板来实现 ...
- vue项目,前端导出excel
今天研究一下前端如何导出excel,边查边实践,边记录 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还涉及不少二进制的东西 file-saver:ES5新增了相关 ...
随机推荐
- 【Insights直播】3D建模服务,快速构建高质量3D模型
2021年7月15日,HMS Core 6.0面向全球开发者正式上线.华为在HMS Core 6.0中,为开发者开放了一个全新的服务--3D建模服务(3D Modeling Kit),为应用开发者提供 ...
- Linux获取摄像头VID,PID的两种方式
第一种方式,是直接查询设备的vid.pid文件,来获取vid,pid 第二种方式,是查询设备信息,自己去解析对应的vid和pid 正常情况下,第一种方式就可以了,但是今天遇到一个ARM架构的kylin ...
- HDD杭州站•ArkUI让开发更灵活
原文:https://mp.weixin.qq.com/s/cX48CPs61daKOC2J5znyJw,点击链接查看更多技术内容. 7月15日的HUAWEI Developer Day(简称HDD) ...
- SSM使用自定义ConditionalOnProperty实现按需加载spring bean
SSM使用自定义ConditionalOnProperty实现按需加载spring bean 背景: 公司提供的系统框架是SSM架构,SSM架构是没有springboot的ConditionalOnP ...
- IaC:实现持续交付和 DevOps 自动化的关键
基础架构即代码(IaC)和 CI/CD 流水线最初似乎并不匹配.因为它们代表了两种不同的流程.IaC 主要关注基础设施的配置和开发,而 CI/CD 则围绕软件开发.测试和部署. 然而,将 IaC 集成 ...
- WAF网站访问限制
请参考:https://www.cnblogs.com/yangyangblog/p/14930159.html 文件下载的地方可以网络搜索,这里提供IIS7 WINDOWS64位版本:https:/ ...
- JavaScript中数值小知识
1. 数值10.0 这种类似的会被去掉数值后的0 之所以这样是因为,整数的存储空间占用比浮点数小,当一个数值不是真浮点数(即10.0这种格式),会被转换为整数10,如果业务中有一些需求需要进行数值位数 ...
- JavaIDEA配置JDBC数据库连接+可视化页面
"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 0X01 ...
- 让容器跑得更快:CPU Burst 技术实践
简介:让人讨厌的 CPU 限流影响容器运行,有时人们不得不牺牲容器部署密度来避免 CPU 限流出现.我们设计的 CPU Burst 技术既能保证容器运行服务质量,又不降低容器部署密度.CPU Bur ...
- 2018-8-10-WPF-省市县3级联动
title author date CreateTime categories WPF 省市县3级联动 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:2 ...