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 '校准证书': result = { ...data, certificateNo: data.certificateReportCode, // 证书编号 yearD: data.deliverTime ? dayjs(data.deliverTime).year() : '', // 接收日期年 monthD: data.deliverTime ? dayjs(data.deliverTime).month() : '', // 接收日期月 dayD: data.deliverTime ? dayjs(data.deliverTime).day() : '', // 接收日期日 yearC: data.calibrationTime ? dayjs(data.calibrationTime).year() : '', // 校准日期年 monthC: data.calibrationTime ? dayjs(data.calibrationTime).month() : '', // 校准日期月 dayC: data.calibrationTime ? dayjs(data.calibrationTime).day() : '', // 校准日期日 dttTest: { propA: '我是测试字段', }, equipmentList: data.equipmentInfoList.map((item: any) => { return { ...item, number1: 1, number2: 2, number3: 3, number4: 4, nameAndModel: item.equipmentName + item.modelNo, // 名称 + 数值 deptNameAndCertificateNo: item.mesureDeptName + item.certificateNo, // 溯源机构+证书编号 } }), } break default: break } // 只留两行 // result = { ...result, equipmentList: [result.equipmentList[0], result.equipmentList[1]] } return result } /** * 表单绑定 * @param spread * @param data */ export default function bindForm(spread: any, data: any, type = '校准证书') { // 处理数据 const solvedData = solveFormData(type, data) // 获取sheet页数量 const sheetCount = spread.getSheetCount() for (let i = 0; i < sheetCount; i++) { // 单元格绑定数据源 const source = new GC.Spread.Sheets.Bindings.CellBindingSource(solvedData) // 获取第几个sheet页 const sheet = spread.getSheet(i) // 填入数据 sheet.setDataSource(source) } }