vite项目中使用xlsx-style

SheetJS是前端操作Excel以及类似的二维表的最佳选择之一,而js-xlsx是它的社区版本。其功能强大,支持xls、xlsx、ods等十几种格式。npm库名称为xlsx,node库也叫node-xlsx,免费版不支持样式调整。而xlsx-style也来源于SheetJs/xlsx,并在社区版上添加了很多功能,其中最主要的功能是设置excel 的样式。

安装之后,不出意外应该会报错...

webpack 项目

在安装完xlsx-style后,应该会有报错Can‘t resolve ‘./cptable‘ in ‘xxx\node_modules_xlsx,解决的方法是:

  • 在项目依赖包里修改下xlsx-style的源代码 node_modules\xlsx-style\dist\cpexcel.js
(function(root, factory){
  "use strict";
  if(typeof cptable === "undefined") {
    if(typeof require !== "undefined"){
      // ***** 此处注释并修改为 var cpt = cptable
      // var cpt = require('./cpt' + 'able');
      var cpt = cptable
      if (typeof module !== 'undefined' && module.exports) module.exports = factory(cpt);
      else root.cptable = factory(cpt);
    } else throw new Error("cptable not found");
  } else cptable = factory(cptable);
}(this, function(cpt){
	// ...
})
  •  webpack.config.js | vue.config.js
module.exports = {
  // ....
  externals: [ {
    './cptable': 'var cptable'
  }]
}

// 或
module.exports = { 
    configureWebpack: { externals: { './cptable': 'var cptable' } } 
}

 vite项目 参考 https://www.kuangstudy.com/bbs/1395219908601679874

//1) 使用npm安装xlsx与xlsx-style包;
//2) 将xlsx-style中的dist下的xlsx.full.min.js复制到assets文件夹下
//3) 在index.html中引用
//4) 首先使用动态导入:import('xlsx').then(res => { ... })
//5) 然后定义一个变量接收res(不能是XLSX,避免与xlsx-style中的XLSX变量冲突) 如 const _XLSX = ""; _XLSX = res;
//6) 使用_XLSX对象完成excel的将table或者json转为sheet的功能
//7) 获取sheet对象后,先对此sheet进行style配置
//7.1) 参考地址: 官方文档或者 --> https://blog.csdn.net/qq_45368052/article/details/112915669
//8) 配置好样式后使用xlsx-style的XLSX变量对sheet进行写入:let wbout = XLSX.write(workbook, wopts);
//9) 然后将wbout对象转换为blob对象下载即可

相关链接

js-xlsx模块学习指南

js-xlsx使用

sheetjs

xlsx

xlsx-style

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xlsx-style-vite 是一个基于 Node.js 的库,用于在服务器端生成和修改 Excel 文件。要修改导出 Excel 表格的字体,需要先安装 xlsx-style-vite 和相关的字体库,然后使用相关的 API 进行操作。 以下是一个简单的示例,演示如何在 Excel 表格修改字体: ```javascript const XLSXStyle = require('xlsx-style-vite'); const workbook = XLSXStyle.readFile('example.xlsx'); const sheetName = workbook.SheetNames[0]; const worksheet = workbook.Sheets[sheetName]; // 修改字体 const cellRange = XLSXStyle.utils.decode_range(worksheet['!ref']); for (let r = cellRange.s.r; r <= cellRange.e.r; r++) { for (let c = cellRange.s.c; c <= cellRange.e.c; c++) { const cellAddress = XLSXStyle.utils.encode_cell({ r, c }); if (worksheet[cellAddress]) { worksheet[cellAddress].s = { font: { name: 'Calibri', sz: 14, bold: true, color: { rgb: 'FF0000FF' }, }, }; } } } XLSXStyle.writeFile(workbook, 'output.xlsx'); ``` 在上面的示例,我们使用 XLSXStyle 库的 `readFile()` 方法读取了一个名为 `example.xlsx` 的 Excel 文件。然后,我们获取了第一个工作表并遍历了其的所有单元格,并使用 `worksheet[cellAddress].s` 对象修改了单元格的样式,包括字体名称、大小、粗细和颜色等。最后,我们使用 `writeFile()` 方法将修改后的 Excel 文件保存为 `output.xlsx` 文件。 需要注意的是,在修改字体之前,您需要确保已经安装了所需的字体库,并且在代码正确地引用了这些字体。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值