XLSX实现导出带样式的Excel表格的坑
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表格的坑相关推荐
- vue3+vite项目使用xlsx+xlsx-style+file-saver导出带有样式的excel表格方法
基于vue3+vite的项目实现导出带有样式的excel表格,框架用的是vben,所以表格用的是ant的table组件数据源,如果用原生表格需要用到备注的另外方法. 首先需要下载xlsx.xlsx-s ...
- java poi excel 图表_java poi导出带图表的excel表格
1 /** 2 *导出综合得分统计3 *@paramfileName4 *@paramrequest5 *@paramresponse6 *@paramheadInfo7 *@paramdataLis ...
- 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题
最近要把HTML页面中的Table导出到Excel中去,可是Table的样式没有在Excel中显示出来,后来百度了一下,也买发现解决办法,大部分都提到了NPOI插件去解决,但是因为时间少没时间去看,后 ...
- 从html导出带样式的excel,Jquery导出带样式的Excel
工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了. 需要设置颜色.字号大小.加粗.合并单元格等等. 特性: 支持过滤 某个位置 支持过滤 img 标签 支持过滤 a 标签 支 ...
- 输出有样式的php,PHP导出带样式的Excel
工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了. 需要设置颜色.字号大小.加粗.合并单元格等等. Paste_Image.png PHP代码: ``php /** 导出文件 ...
- php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......
PHP如何将查询出来的数据导出成excel表格(最好做... $objPHPExcel->getActiveSheet()->getDefaultColumnDimension(A)-&g ...
- Easypoi使用模板导出文档或excel表格详解
Easypoi使用模板导出docx文档或excel表格详解 **doc或docx文档的模板导出** **Excel的模板导出** 话不多说先上依赖 <dependency><grou ...
- 导出带图片的Excel报表
导出带图片的Excel报表 先引用 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll程序集,然后在后台页面引用using Excel = Microsof ...
- Java导出带格式的Excel数据到Word表格
在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用Spi ...
最新文章
- 批量修改文件权限 和所有者 chown nobody:nobody * -R chmod 775 * -R
- java 平均值_Java岗招聘标准差强人意,薪资比拼,Java程序员表示“我太难了”...
- 「Ubuntu」ModuleNotFoundError: No module named ‘softwareproperties‘
- 一起学windows phone7开发(二十二.使用系统资源)
- spring aop组件_安全性中的Spring AOP –通过方面控制UI组件的创建
- oracle数据modeling分类,由浅入深 NoSQL的五种主流数据模型
- 5分钟了解阿里时序时空数据库
- mysql fio测试_Linux下 fio磁盘压测笔记
- Android 系统(165)---在apns-conf文件中配置一个read_only字段,使APN不可被编辑
- iOS navigationbar 透明
- Html5 JumpStart学习笔记2:CSS Selectors and Style Properties
- Python让繁琐工作自动化——chapter7 模式匹配与正则表达式
- Python中虚拟环境与网络IP地址、端口、socket套接字【详细】
- java在线视频源码_java在线视频会议源代码
- 重磅!清华大学网上课程面向全国免费开放!无需登录、注册!在家上清华!...
- Yaml:基本语法使用
- week3 day3 迭代器和生成器
- 小米布局金融5年:新网银行遭银保监通报侵权,小米数科被列入经营异常
- url跳转http不携带referer方法
- 数据挖掘常见分析方法
热门文章
- linux 软件覆盖安装,pacman/yaourt安装软件的时候覆盖了/usr/share的symlink链接的问题...
- 微信小程序-房屋设施图标
- 使用update!导致的更新时候的错误信息不显示 ruby on rails
- 捷联惯导知识点之非直角坐标系到直角坐标系
- 计算机代码画玫瑰,如何用代码画一朵玫瑰花
- Python使用openpyxl模块小批量处理Excel文件
- 【Ubuntu疑难杂症】无法定位软件包?
- 路由器工作原理及配置实验
- 3个超神器工具,让你的电脑比手机好玩,值得收藏
- 企业网站怎么制作?企业网站制作,只需记住这8个步骤