Newer
Older
smart-metering-front / src / views / business / lab / excelEdit / methods / bind / bindTable.ts
dutingting on 28 Mar 1 KB spreadJS表格学习
import GC from '@grapecity-software/spread-sheets'
import dayjs from 'dayjs'
const certTypeMap: { [key: string]: string } = {
  1: '校准证书',
}

/**
 * 处理表单数据字段的对应
 * @param type 模板类型
 * @param data 要处理的数据
 */
const solveFormData = (type: string, data: any) => {
  let result: any
  switch (type) {
    case '校准证书':
      console.log('pppppppppppppp')
      console.log(data.equipmentInfoList)

      result = {
        equipmentList: data.equipmentInfoList.map((item: any) => {
          return {
            ...item,
            number1: 1,
            number2: 2,
            number3: 3,
            number4: 4,
          }
        }),
      }
      break
    default:
      break
  }
  console.log('处理后的表格数据', result)
  return result
}

/**
 * 表单绑定
 * @param spread
 * @param data
 */
export default function bindTable(spread: any, data: any, type = '校准证书') {
  // 处理数据
  const solvedData = solveFormData(type, data)
  // 获取sheet页数量
  const seetCount = spread.getSheetCount()
  for (let i = 0; i < seetCount; i++) {
    // 单元格绑定数据源
    const source = new GC.Spread.Sheets.Bindings.CellBindingSource(solvedData)
    const sheet = spread.getSheet(i) // 获取第几个sheet页
    // 填入数据
    sheet.setDataSource(source)
  }
}