XLSX导出带样式的Excel表格失败

  • 导入XLSX
  • xlsx-style的使用

项目的要求,需要导出一个结果到Excel表格中,因为所以,没有用Java的方式去实现,而选择了Vue前端直接导出的方式来实现。

开头总结:
使用xlsx-style的XLSX对象来生成Excel的对象才能实现样式,需要区分开xlsx包的XLSX对象

导入XLSX

网上有很多资料,基本上就是使用XLSX去实现Excel表格的创建

cnpm install --save xlsx

在导入XLSX后,如果要实现带样式的Excel表格,还需要再导入xlsx-style

cnpm install --save xlsx-style

注意:
导入xlsx-style时,在引用入vue后,启动时会抛出异常

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

需要手动导入JS,在node-modules中找到xlsx-style中的dist目录中的xlsx.full.min.js粘贴到static里

然后再在index.html中导入这个js

<script type="text/javascript" src="./static/xlsx.full.min.js"></script>


或者修改源码:

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

xlsx-style的使用

使用上诉方式导入后,若想实现在sheet参数中的添加的样式,例如:

sheet['B2'].s = {font: {name: '宋体',sz: 18,color: {rgb: 'ff0000'},bold: true,italic: false,underline: false},alignment: {horizontal: 'center',vertical: 'center'}}

只需要在将sheet对象转换为Excel对象的Blob格式时,使用XLSX --xlsx-style包中 进行转换即可,使用xlsx包中的只能生成无样式的excel!

/*** 将一个sheet转成最终的excel文件的blob对象,然后利用URL.createObjectURL下载*/sheet2blob: function (sheet, sheetName) {sheetName = sheetName || 'sheet1'var workbook = {SheetNames: [sheetName],Sheets: {}}workbook.Sheets[sheetName] = sheet// 生成excel的配置项var wopts = {bookType: 'xlsx', // 要生成的文件类型bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性type: 'binary'}var wbout = XLSX.write(workbook, wopts) // 这里的XLSX是上面手动导入的JS中的,是xlsx-style的XLSXvar blob = new Blob([this.s2ab(wbout)], {type: 'application/octet-stream'})return blob},// 字符串转ArrayBuffers2ab: function (wbout) {var buf = new ArrayBuffer(wbout.length)var view = new Uint8Array(buf)for (var i = 0; i !== wbout.length; ++i) view[i] = wbout.charCodeAt(i) & 0xFFreturn buf}

需要注意的是:XLSX这个参数,就是xlsx-style所属了!
如果还需要使用XLSX包中的一些函数,例如aoaToSheet等,那么导入的XLSX包不能引入为

import XLSX from "XLSX"

这样会导致上面手动在index.html中导入的xlsx-style冲突失效!!!

import XLSXD from "XLSX"var sheet = XLSXD.utils.aoa_to_sheet(aoa)

XLSX实现导出带样式的Excel表格的坑相关推荐

  1. vue3+vite项目使用xlsx+xlsx-style+file-saver导出带有样式的excel表格方法

    基于vue3+vite的项目实现导出带有样式的excel表格,框架用的是vben,所以表格用的是ant的table组件数据源,如果用原生表格需要用到备注的另外方法. 首先需要下载xlsx.xlsx-s ...

  2. java poi excel 图表_java poi导出带图表的excel表格

    1 /** 2 *导出综合得分统计3 *@paramfileName4 *@paramrequest5 *@paramresponse6 *@paramheadInfo7 *@paramdataLis ...

  3. 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题

    最近要把HTML页面中的Table导出到Excel中去,可是Table的样式没有在Excel中显示出来,后来百度了一下,也买发现解决办法,大部分都提到了NPOI插件去解决,但是因为时间少没时间去看,后 ...

  4. 从html导出带样式的excel,Jquery导出带样式的Excel

    工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了. 需要设置颜色.字号大小.加粗.合并单元格等等. 特性: 支持过滤 某个位置 支持过滤 img 标签 支持过滤 a 标签 支 ...

  5. 输出有样式的php,PHP导出带样式的Excel

    工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了. 需要设置颜色.字号大小.加粗.合并单元格等等. Paste_Image.png PHP代码: ``php /** 导出文件 ...

  6. php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......

    PHP如何将查询出来的数据导出成excel表格(最好做... $objPHPExcel->getActiveSheet()->getDefaultColumnDimension(A)-&g ...

  7. Easypoi使用模板导出文档或excel表格详解

    Easypoi使用模板导出docx文档或excel表格详解 **doc或docx文档的模板导出** **Excel的模板导出** 话不多说先上依赖 <dependency><grou ...

  8. 导出带图片的Excel报表

    导出带图片的Excel报表 先引用 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll程序集,然后在后台页面引用using Excel = Microsof ...

  9. Java导出带格式的Excel数据到Word表格

    在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用Spi ...

最新文章

  1. 批量修改文件权限 和所有者 chown nobody:nobody * -R chmod 775 * -R
  2. java 平均值_Java岗招聘标准差强人意,薪资比拼,Java程序员表示“我太难了”...
  3. 「Ubuntu」ModuleNotFoundError: No module named ‘softwareproperties‘
  4. 一起学windows phone7开发(二十二.使用系统资源)
  5. spring aop组件_安全性中的Spring AOP –通过方面控制UI组件的创建
  6. oracle数据modeling分类,由浅入深 NoSQL的五种主流数据模型
  7. 5分钟了解阿里时序时空数据库
  8. mysql fio测试_Linux下 fio磁盘压测笔记
  9. Android 系统(165)---在apns-conf文件中配置一个read_only字段,使APN不可被编辑
  10. iOS navigationbar 透明
  11. Html5 JumpStart学习笔记2:CSS Selectors and Style Properties
  12. Python让繁琐工作自动化——chapter7 模式匹配与正则表达式
  13. Python中虚拟环境与网络IP地址、端口、socket套接字【详细】
  14. java在线视频源码_java在线视频会议源代码
  15. 重磅!清华大学网上课程面向全国免费开放!无需登录、注册!在家上清华!...
  16. Yaml:基本语法使用
  17. week3 day3 迭代器和生成器
  18. 小米布局金融5年:新网银行遭银保监通报侵权,小米数科被列入经营异常
  19. url跳转http不携带referer方法
  20. 数据挖掘常见分析方法

热门文章

  1. linux 软件覆盖安装,pacman/yaourt安装软件的时候覆盖了/usr/share的symlink链接的问题...
  2. 微信小程序-房屋设施图标
  3. 使用update!导致的更新时候的错误信息不显示 ruby on rails
  4. 捷联惯导知识点之非直角坐标系到直角坐标系
  5. 计算机代码画玫瑰,如何用代码画一朵玫瑰花
  6. Python使用openpyxl模块小批量处理Excel文件
  7. 【Ubuntu疑难杂症】无法定位软件包?
  8. 路由器工作原理及配置实验
  9. 3个超神器工具,让你的电脑比手机好玩,值得收藏
  10. 企业网站怎么制作?企业网站制作,只需记住这8个步骤