1. 程式人生 > >vue使用js-xlsx外掛匯出,生成合並單元格陣列

vue使用js-xlsx外掛匯出,生成合並單元格陣列

/**
 * 生成合並單元格陣列
 * 例
 let arr = [
    ['日期', '使用者ID', '搜尋頁', '首頁', '個人房源', '', '品牌公寓', '', '', '整租', '', '合租', '', '我要出租', '地圖找房', '公租房', '', '人才房', '', '公共服務', '我的', '', '', '', '', '', '', '', '', ],
    ['', '', '', '', '列表頁', '詳情頁', '列表頁', '戶型頁', '詳情頁', '列表頁', '詳情頁', '列表頁', '詳情頁', '', '', '列表頁', '詳情頁', '列表頁', '詳情頁', '公積金', '關注房源頁', '我的合同', '我的預約', '我的出租', '我的銀行卡', '我的安居分', '我的通訊地址', '操作指引', '關於我們']
]
this.$mergesFormat(arr)
 */
const mergesFormat = (arr = [[], []]) => {
  let mergesArr = []
  arr[0].forEach((item, index) => {
    if (item) {
      mergesArr[mergesArr.length] = {
        s: {},
        e: {}
      }
      mergesArr[mergesArr.length - 1].s.c = index
      mergesArr[mergesArr.length - 1].s.r = 0
      mergesArr[mergesArr.length - 1].e.c = index
      mergesArr[mergesArr.length - 1].e.r = 0
    } else {
      mergesArr[mergesArr.length - 1].e.c = index
    }
  })
  mergesArr.forEach((item, index) => {
    if (arr[1][item.e.c] === '') {
      mergesArr[index].e.r = 1
    }
  })
  return mergesArr
}