前端vue解决导出Excel自定义标题头

前端vue解决导出Excel自定义标题头

数据:

[
    {
        "shipName": "XC4273",
        "shipLength": "史洋",
        "portName": "电建渔港01",
        "phone": "18273414451",
        "cmdType": "北斗",
        "portTypes": "进港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "N61260",
        "shipLength": "姚强",
        "portName": "电建渔港01",
        "phone": "14602856354",
        "cmdType": "雷达",
        "portTypes": "出港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "UN8986",
        "shipLength": "黄杰",
        "portName": "电建渔港02",
        "phone": "18344561742",
        "cmdType": "雷达",
        "portTypes": "进港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "GN6578",
        "shipLength": "郭磊",
        "portName": "电建渔港01",
        "phone": "11184687074",
        "cmdType": "北斗",
        "portTypes": "出港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "CO5465",
        "shipLength": "田强",
        "portName": "电建渔港01",
        "phone": "19657941539",
        "cmdType": "AIS",
        "portTypes": "进港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "V45379",
        "shipLength": "朱霞",
        "portName": "电建渔港03",
        "phone": "18417926181",
        "cmdType": "北斗",
        "portTypes": "出港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "R21063",
        "shipLength": "秦军",
        "portName": "电建渔港02",
        "phone": "12866373803",
        "cmdType": "雷达",
        "portTypes": "出港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "XR9061",
        "shipLength": "吴强",
        "portName": "电建渔港01",
        "phone": "13814522161",
        "cmdType": "雷达",
        "portTypes": "进港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "CU6806",
        "shipLength": "吕娜",
        "portName": "电建渔港01",
        "phone": "14705143463",
        "cmdType": "北斗",
        "portTypes": "进港",
        "startTime": "2024-08-08 12:21:00"
    },
    {
        "shipName": "HG5566",
        "shipLength": "薛艳",
        "portName": "电建渔港04",
        "phone": "13480957859",
        "cmdType": "北斗",
        "portTypes": "出港",
        "startTime": "2024-08-08 12:21:00"
    }
]

函数调用

 exportToExcel(
        tableData.value,
        {
          船名: 'shipName',
          船主: 'shipOwner',
          渔港名称: 'portName',
          联系方式: 'phone',
          终端类型: 'cmdType',
          进出港类型: 'portTypes',
          进出港时间: 'startTime'
        },
        '船只数据导出.xlsx'
      )

函数封装


function exportToExcel(data, headers) {
  // 创建一个工作簿
  const workbook = XLSX.utils.book_new()

  // 转换数据为工作表,使用传入的headers作为列名
  const ws = XLSX.utils.json_to_sheet(
    data.map((item) => {
      const row = {}
      for (const header in headers) {
        if (headers.hasOwnProperty(header) && item.hasOwnProperty(headers[header])) {
          row[header] = item[headers[header]]
        }
      }
      return row
    })
  )

  // 将工作表添加到工作簿
  XLSX.utils.book_append_sheet(workbook, ws, '船只数据')

  // 生成Excel文件
  const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' })

  // 触发下载
  function s2ab(s) {
    const buf = new ArrayBuffer(s.length)
    const view = new Uint8Array(buf)
    for (let i = 0; i < s.length; i++) {
      view[i] = s.charCodeAt(i) & 0xff
    }
    return buf
  }

  const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' })
  const url = URL.createObjectURL(blob)
  const a = document.createElement('a')
  a.href = url
  a.download = '船只数据.xlsx'
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
  URL.revokeObjectURL(url)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2中导出Excel自定义文件名称,你可以使用一个名为tableToExcel的函数来实现。该函数接受三个参数:table(表格模板字符串),name(文件名),callback(回调方法)。你可以在项目中创建一个exportExcel.js文件,并在其中定义和导出这个函数。然后,在需要导出Excel的地方,引入这个方法并调用它,传入相应的参数即可实现导出。 具体步骤如下: 1. 在项目中创建一个exportExcel.js文件,并在其中定义一个名为tableToExcel的函数。函数接受三个参数:table、name和callback。 2. 在函数内部的实现中,你可以使用第三方库或自己编写的逻辑来将table转换为Excel文件,并自定义文件的名称。具体的转换逻辑可以根据你使用的库或自己编写的代码来实现。 3. 在函数的最后,你可以调用callback函数来完成一些回调操作,例如提示用户导出成功或执行其他逻辑。 通过这种方式,你可以在Vue2中导出Excel自定义文件名称。这个方法不仅适用于Vue框架,你也可以在其他前端框架(如Jquery、React等)中使用,只需要将封装好的方法引入即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3.0导出数据为自定义样式Excel](https://blog.csdn.net/qq_24800489/article/details/129439510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值