请问在VB中怎么把datagrid的内容输出到excel表格中呀???请详细说来,谢谢了。
解决方案 »
- VB中进行合并Excel单元格操作后,不能正常释放(关闭)Excel进程的解决办法(Excel.Range的正确使用方法)
- 日志:asp.dll 报告它自身有问题
- 高手请指教:输入两个日期,返回两个日期之间所有月份的最后一天等
- 哈哈,需要短信网关IP地址及其源代码的快来顶一下。
- 如何获得access中表的个数?!
- 关于TreeView控件节点的鼠标单击事件响应??
- 如何通过代码获取数据库当中表的字段名呢??
- 有低价DDN上网专线、长途专线、服务器托管、机柜出租
- select 查询日期 报错
- 在程序中用Shell调用一个外部EXE文件,同用户直接在操作系统中运行这个EXE本质是相同的吗?
- 在IE中如何使用external.menuArguments获得某一项的连接地址,求external.menuArguments的具体写法?
- 求一个思路:VB数据库动态报表生成
Sub SaveAsExcel(ByVal objRst As ADODB.Recordset, _
ByVal strFileName As String, _
Optional FileFormat As XlFileFormat = xlWorkbookNormal, _
Optional blnHeaders As Boolean = True) Dim intRowCnt As Integer ' 列之计数器。
Dim intColCnt As Integer ' 栏之计数器。 Dim objExcel As Excel.Application
Dim objFld As Field
Dim objWorkbook As Excel.Workbook
Dim objWorksheet As Excel.Worksheet
Dim strFileExtensionType As String ' 延伸檔名。 On Error GoTo SaveAsExcel_EH
Screen.MousePointer = vbHourglass
'------------------------------------------------
' A0 Excel 相关设定作业。
'------------------------------------------------
Set objExcel = New Excel.Application
' 不让使用者操作。
objExcel.Interactive = False ' 背后作业。
If objExcel.Visible = False Then
objExcel.Visible = True
End If
' 窗口最大化。
objExcel.WindowState = xlMaximized
' 设定 Wokkbook 对象。
Set objWorkbook = objExcel.Workbooks.Add
' 设定 Worksheet 对象,指向 Sheet 1。
Set objWorksheet = objWorkbook.Worksheets.Add
'------------------------------------------------
' A1 Excel 表头部份相关设定作业。
'------------------------------------------------
If blnHeaders Then
intColCnt = 1
For Each objFld In objRst.Fields
Select Case objFld.Type
' 下述数据型态则予以略过。
Case adGUID, adLongVarBinary, adLongVarWChar
Case Else
objWorksheet.Cells(1, intColCnt).Value = objFld.Name
objWorksheet.Cells(1, intColCnt).Interior.ColorIndex = 33
objWorksheet.Cells(1, intColCnt).Font.Bold = True
objWorksheet.Cells(1, intColCnt).BorderAround xlContinuous
intColCnt = intColCnt + 1
End Select
Next objFld
End If '------------------------------------------------
' A2 Excel 表身部份相关设定作业。
'------------------------------------------------
objRst.MoveFirst
intRowCnt = 2
Do While Not objRst.EOF()
intColCnt = 1
For Each objFld In objRst.Fields
Select Case objFld.Type
Case adGUID, adLongVarBinary, adLongVarWChar
Case Else
objWorksheet.Cells(intRowCnt, intColCnt).Value = objRst.Fields(objFld.Name).Value
intColCnt = intColCnt + 1
End Select
Next objFld
objRst.MoveNext
intRowCnt = intRowCnt + 1
Loop '------------------------------------------------
' A3 Excel 自动调整栏宽。
'------------------------------------------------
intColCnt = 1
For Each objFld In objRst.Fields Select Case objFld.Type
Case adGUID, adLongVarBinary, adLongVarWChar
Case Else
objWorksheet.Columns(intColCnt).AutoFit
intColCnt = intColCnt + 1
End Select
Next objFld '------------------------------------------------
' B1 取得延伸檔名。
' 参阅 Excel 说明里的「Microsoft Excel 提供的档案格式转换器」
'------------------------------------------------
Select Case FileFormat
Case xlSYLK
strFileExtensionType = "slk"
Case xlWKS
strFileExtensionType = "wks"
Case xlWK1, xlWK1ALL, xlWK1FMT
strFileExtensionType = "wk1"
Case xlCSV, xlCSVMac, xlCSVWindows
strFileExtensionType = "csv"
Case xlDBF2, xlDBF3, xlDBF4
strFileExtensionType = "dbf"
Case xlWorkbookNormal, xlExcel2FarEast, xlExcel3, xlExcel4, xlExcel4Workbook, xlExcel5, xlExcel7, xlExcel9795
strFileExtensionType = "xls"
Case xlHtml
strFileExtensionType = "htm"
Case xlTextMac, xlTextWindows, xlUnicodeText, xlCurrentPlatformText
strFileExtensionType = "txt"
Case xlTextPrinter
strFileExtensionType = "prn"
Case Else
strFileExtensionType = "dat"
End Select '------------------------------------------------
' B2 另存档案。
'------------------------------------------------
If InStr(1, strFileName, ".") = 0 Then
' 组合文件名称。
strFileName = strFileName & "." & strFileExtensionType
' 另存档案。
objWorksheet.SaveAs strFileName, FileFormat
End If
'------------------------------------------------
' Z0 结束作业。
'------------------------------------------------
' 关闭 Workbook。
objWorkbook.Close
' 结束 Excel 作业。
objExcel.Quit
' 释放对象所占空间。
Set objFld = Nothing
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
ExitSub: Screen.MousePointer = vbDefault
Exit Sub
SaveAsExcel_EH: ' 出现错误讯息。
MsgBox "汇出失败,原因如下:" & vbCrLf & vbCrLf & Err.Number & ": " & Err.Description, _
vbOKOnly + vbCritical, "汇出失败"
' 关闭 Workbook。
objWorkbook.Close
' 结束 Excel 作业。
objExcel.Quit
' 载出对象变量。
Set objFld = Nothing
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
GoTo ExitSub
End Sub
cnn.Execute "select * into [Sheet1] in """ & strFileName & """ ""EXCEL 5.0;"" from table"3 如果没有绑定,也不能从数据库得到同样数据,就只有对 datagrid 和 Excel 对象逐单元格读写了。
Dim ExcelWorkBook As Excel.WorkBook
Dim ExcelWorkSheet As Excel.WorkSheet
cnn.Execute "select * into [Sheet1] in """ & strFileName & """ ""EXCEL 5.0;"" from table where ..."
我在工程\引用里找不到EXCEL的,电脑系统是装有的..谢了!!