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新增了相关 ...
随机推荐
- Redis 02 基础命令
数据库 Redis 默认有 16 个数据库. 默认使用的是第 0 个数据库. 不同数据库存不同的值. 切换数据库 select 127.0.0.1:6379> select 1 OK 127.0 ...
- os.path.splitext
os.path.splitext是Python标准库中的一个函数,它可以将一个文件路径拆分成两部分:文件名和文件扩展名.例如: 点击查看代码 import os file_path='avercrop ...
- c# checked 和 unchecked
前言 我们知道一个东西在c# 中 比如说int 的max 加1会等于min. 如: static void Main(string[] args) { int i = 2147483647; int ...
- VulnHub-Jangow-01-1.0.1打靶记录
知识点 NMAP参数 -sV 获取系统信息 -sT TCP扫描可能会留下日志记录 -sC 使用默认脚本(在-A模式下不需要) -p1-xxx 扫描端口号 -p- ==>等价于 -p1-65535 ...
- 面试官:说一说CyclicBarrier的妙用!我:这个没用过
写在开头 面试官:同学,AQS的原理知道吗? 我:学过一点,抽象队列同步器,Java中很多同步工具都是基于它的... 面试官:好的,那其中CyclicBarrier学过吗?讲一讲它的妙用吧 我:啊,这 ...
- 【oracle】想要得到一个与输入顺序相同的结果
[oracle]想要得到一个与输入顺序相同的结果 在Oracle中,输出结果顺序好像是个rowid相同的,也就是经常使用的rownum序列的值,所以可以通过对rownum进行order by来让输出结 ...
- Oracle常用的创建表语句
Oracle常用的创建表语句 Oracle常用的创建表语句 指定字段的创建 --指定字段的创建 create table table_name( test_1(字段名1) varchar2(50),( ...
- 一文详解 Serverless 架构模式
什么是 Serverless 架构?按照 CNCF 对 Serverless 计算的定义,Serverless 架构应该是采用 FaaS(函数即服务)和 BaaS(后端服务)服务来解决问题的一种设计. ...
- E百科 | 第2期 扒一扒能加速互联网的QUIC协议
简介: 众所周知,QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP.TLS.HTTP/2等协议的可靠性与安 ...
- rerank来提升RAG的准确度的策略
RAG(Retrieval-Augmented Generation)是一种结合检索和生成两种技术的模型,旨在通过检索大规模知识库来增强文本生成任务的准确性. 要通过reranking(重排序)来提升 ...