使用xlsx-js-style表格导出,合计,单元格居中,多级表头合并,添加序号

该代码示例展示了如何在JavaScript中利用xlsx-js-style和file-saver库来创建并导出带有格式的Excel文件。首先引入插件,然后将数据转换为二维数组,定义表头和表尾,设置合并单元格、列宽行高以及单元格样式,最后导出为.xlsx文件。
摘要由CSDN通过智能技术生成

 

引入插件
import XLSXS from 'xlsx-js-style';
import FileSaver from 'file-saver';

插件版本
"xlsx-js-style": "^1.2.0"
"file-saver": "^2.0.5",
const exportExcel = () => {
  // 第一列添加序号
  state.tableData  = state.tableData.map((row, index) => {
    return Object.assign({}, { index: index + 1 }, row);
  });

  //转换为一个二维数组
  let body = state.tableData.map(x => ([x.index,x.dwmc, x.gfje, x.zjgf, x.zggf]))

  let tableLength = state.tableData.length + 2

  /* 定义表头
      定义表头,每一行即是一个数组,数组中的元素即是一个个单元格内容。
  */
  const header = [
    [
    {
      v: '表头标题',
      t: 's',
    },
  ],
  ['序号','单位','金额','其中处级','职工']
  ]

  //表尾第三列合计
  const tail = ['', '合计&
xlsx-js-style是一个用于操作Excel文件的JavaScript库,它并不直接支持边框样式,但你可以通过一些技巧来模拟空单元格带边框的效果。下面是一种常见的做法: 1. 首先,确定哪些单元格应该有边框。在xlsx-js-style中,你可以通过`cellStyle`对象来设置单元格样式,包括是否添加边框。 ```javascript const cell = { // 其他单元格属性... cellStyle: { borders: { top: { style: 'thin', color: '#000' }, // 边框样式和颜色,可以自定义 bottom: { ... }, left: { ... }, right: { ... }, } } }; ``` 2. 对于空单元格(即值为null、undefined或""),你可以检查并手动设置边框样式。例如,在生成表格之前,遍历数据,判断每个单元格的内容再决定是否添加边框。 ```javascript let wsData = []; // 工作表数据数组 for (let i = 0; i < wsData.length; i++) { for (let j = 0; j < wsData[i].length; j++) { if (!wsData[i][j] || String(wsData[i][j]).trim() === '') { cell.cellStyle.borders.all = { style: 'thin', color: '#000' }; // 如果为空则全边框 } else { cell.cellStyle.borders.all = {}; // 若非空则取消所有边框 } // 将cell添加到工作表中 } } ``` 3. 最后,将修改后的单元格添加到对应的工作表中。 注意:这种方法依赖于前端展示,如果你需要在xlsx文件本身保存边框信息,xlsx-js-style可能无法直接满足需求,因为它主要用于读取和创建电子表格内容,而不是处理复杂的样式细节。如果需要更精确地控制Excel文件的外观,你可能需要考虑使用xlsx或xssf等其他专门处理Excel文件的库。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值