'输出表头 For i = 0 To Me.Adodc1.Recordset.Fields.Count - 1 '设置列名 strColName1 = Chr(65 + i) & "1" oSheet.Range(strColName1).Value = Me.DataGrid1.Columns(i).Caption
'据DataGrid中的宽度设置EXCEL列宽 StrColName = Chr(65 + i) & ":" & Chr(65 + i) oSheet.Columns(StrColName).ColumnWidth = Int(Me.DataGrid1.Columns(i).Width / 90)
Next i
'输出内容 Do Until Me.Adodc1.Recordset.EOF j = j + 1
For i = 0 To Me.Adodc1.Recordset.Fields.Count - 1 StrColName = Chr(65 + i) & CStr(j + 1) If Not IsNull(Me.DataGrid1.Columns(i)) And Me.DataGrid1.Columns(i) <> "" Then
'根据列的属性对表格数据作相应格式化处理 Select Case Me.Adodc1.Recordset.Fields(i).Type Case adCurrency oSheet.Range(StrColName).Value = CCur(Me.DataGrid1.Columns(i)) Case adNumeric oSheet.Range(StrColName).Value = CLng(Me.DataGrid1.Columns(i)) Case adInteger oSheet.Range(StrColName).Value = CInt(Me.DataGrid1.Columns(i)) Case adDate oSheet.Range(StrColName).Value = CDate(Me.DataGrid1.Columns(i)) oSheet.Range(StrColName).NumberFormatLocal = "yyyy-mm-dd hh:mm" Case Else oSheet.Range(StrColName).Value = Me.DataGrid1.Columns(i)
End Select Else oSheet.Range(StrColName).Value = Me.DataGrid1.Columns(i) End If Next i
Me.Adodc1.Recordset.MoveNext Loop
别人的代码 仅供参考~
|