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: '我是测试字段' } } break default: break } return result } /** * 表单绑定 * @param spread * @param data */ export default function bindForm(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) } }