'輸出表頭
For i = 0 To Me.Adodc1.Recordset.Fields.Count - 1
'設(shè)置列名
strColName1 = Chr(65 + i) & "1"
oSheet.Range(strColName1).Value = Me.DataGrid1.Columns(i).Caption
'據(jù)DataGrid中的寬度設(shè)置EXCEL列寬
StrColName = Chr(65 + i) & ":" & Chr(65 + i)
oSheet.Columns(StrColName).ColumnWidth = Int(Me.DataGrid1.Columns(i).Width / 90)
Next i
'輸出內(nè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
'根據(jù)列的屬性對表格數(shù)據(jù)作相應(yīng)格式化處理
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
別人的代碼 僅供參考~