js vue 设置excel单元格样式_vue项目使用xlsx-style实现前端导出Excel样式修改(添加标题,边框等),并且上传npm踩坑记录...

这篇博客介绍了如何在Vue项目中使用xlsx-style库来导出带有标题、居中显示和边框样式的Excel文件。在实现过程中,作者遇到了导入错误,通过修改xlsx-style源码解决了问题,并分享了创建自定义npm包的步骤。文章提供了详细的代码示例,包括数据转换、设置单元格样式和合并单元格的方法。
摘要由CSDN通过智能技术生成

前段时间,我们项目提出一个前端导出Excel表格的需求,

这个很简单,利用xlsx,file-saver很容易实现(网上很多教程)。

后来需要加入标题,标题居中显示,加入边框等等样式需求,这就给我很多困扰,查阅大量资料和研究,最终选定xlsx-style进行修改(借鉴https://www.jianshu.com/p/23ee264ecde8)。

以下便是xlsx-style踩坑之旅:

导入问题cnpm install --save xlsx-style

import XLSX from "xlsx-style"报错:This relative module was not found: ./cptable in ./node_modules/xlsx-style@0.8.13@xlsx-style/dist/cpexcel.js

需要修改源码:

在\node_modules\xlsx-style\dist\cpexcel.js 807行 的 var cpt = require(’./cpt’ + ‘able’); 改成 var cpt = cptable;

本地src目录新建vendor/Export2Excel.js:

/* eslint-disable */

require('script-loader!file-saver');

import XLSX from 'xlsx-style'

function generateArray(table) {

var out = [];

var rows = table.querySelectorAll('tr');

var ranges = [];

for (var R = 0; R < rows.length; ++R) {

var outRow = [];

var row = rows[R];

var columns = row.querySelectorAll('td');

for (var C = 0; C < columns.length; ++C) {

var cell = columns[C];

var colspan = cell.getAttribute('colspan');

var rowspan = cell.getAttribute('rowspan');

var cellValue = cell.innerText;

if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue;

//Skip ranges

ranges.forEach(function (range) {

if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {

for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null);

}

});

//Handle Row Span

if (rowspan || colspan) {

rowspan = rowspan || 1;

colspan = colspan || 1;

ranges.push({

s: {

r: R,

c: outRow.length

},

e: {

r: R + rowspan - 1,

c: outRow.length + colspan - 1

}

});

}

;

//Handle Value

ou

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值