vue导出Excel模板设置单元格下拉列表

使用两个库

  • exceljs 用来创建Excel
  • file-saver 用来导出
// utils.js
/**
 * 传入参数说明
 * @param name 导出名称
 * @param columns 表头设置,下面有示例
 * @param list 表格数据,下面有示例
 * @param num 要设置的列数,也可以通过findIndex找出设置
 */
// 封装了一个函数,直接传入值就好了
const ExcelJS = require('exceljs')
const FileSaver = require('file-saver')
export async function staff_import_template(name, columns, list, num) {
   
  const wb = new ExcelJS.Workbook()
  const Sheet1 = wb.addWorksheet(name) // 新建工作表,可以建多个

  Sheet1.columns = columns // 设置表头,(key, 宽度)
  // Sheet1.columns = [ // 表头格式如下
  //   {
   
  //     header: '编号',
  //     key: 'no',
  //     width: 20
  //   }, // A1
  //   {
   
  //     header: '姓名',
  //     key: 'name',
  //     width: 20
  //   }, // B2
  // ]

  // const list = [ // 表格数据格式如下
  //   {
   
  //     no: '1',
  //     name: '小红',
  //     sex: '女',
  //     sexVal: '0'
  //   }
  // ]

  Sheet1.addRows(list) // 设置表格数据
  // 表示循环1000行
  new Array(1000).fill(0).forEach((_, idx) => {
   
    const row = idx + 2
    // 渲染下拉框  参数(行,列) row表示每行 可以单独写哪一列
    Sheet1.getCell(row, num).dataValidation = {
   
      type: 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值