&& Code like =afields[FieldArray) nRow = 2 && after the header scan all for ... nRow = nRow + 1 for i = 1 to nCols =VariableToExcel(eval(FieldArray[m.i, 1]), FieldArray[m.i, 2]), m.xlSheet.Cells[m.nRow,m.i]) endfor endscan *--------------------------------------------------------------------------- function VariableToExcel(Content, FieldType, CellReference) local Success Success = TRUE local x, FormatMask FieldType = iif(empty(m.FieldType), vartype(m.Content), m.FieldType) x = null do case case isnull(m.Content) case inlist(m.FieldType, T_CHARACTER, T_MEMO) x = ['] + rtrim(m.Content) case inlist(m.FieldType, T_DATE) x = iif(empty(m.Content), '', '=date(' + transform(dtos(m.Content), '@R 9999,99,99') + ')') FormatMask = 'dd/mm/yyyy' case inlist(m.FieldType, T_DATETIME) x = ; iif(empty(m.Content), ; '', ; '=date(' + transform(dtos(m.Content), '@R 9999,99,99') + ')' ; + '+time(' + transform(right(ttoc(m.Content,1),6), '@R 99,99,99') + ')' ; ) FormatMask = 'dd/mm/yyyy hh:mm:ss' case inlist(m.FieldType, T_CURRENCY) x = m.Content FormatMask = '#,###.00' + '_);[Red](' + '#,###.00' + ')' case inlist(m.FieldType, 'I') x = m.Content FormatMask = '#,###' + '_);[Red](' + '#,###' + ')' case inlist(m.FieldType, T_NUMERIC, T_DOUBLE) x = m.Content FormatMask = '#,###.00' + '_);[Red](' + '#,###.00' + ')' case inlist(m.FieldType, T_LOGICAL) x = iif(m.Content, 'TRUE', 'FALSE') endcase do case case (vartype(m.CellReference) <> T_OBJECT) Success = FALSE case isnull(m.x) x = '' otherwise with m.CellReference .Value = m.x if( !empty(m.FormatMask) ) .NumberFormat = m.FormatMask endif endwith endcase return m.Success endfunc *--------------------------------------------------------------------------