MSHFlexGrid控件中的数据怎样导入Excel中?
有两个MSHFlexgrid控件,为多行四列的,每个单元格中都有数据,要将其中一个控件中的内容导入到Excel中,请教该如何做,?请提供代码。谢谢
[解决办法]
'新建一模块,写入如下语句:
Public Sub ExportToExcel(formname As Form, flexgridname As String)
Dim xlApp As Object 'Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
Screen.MousePointer = vbHourglass
On Error GoTo Err_Proc
Set xlApp = CreateObject( "Excel.Application ")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
'Begin to fill data to sheet
Dim i As Long
Dim j As Integer
With formname.Controls(flexgridname)
For i = 0 To .rows - 1
For j = 0 To .Cols - 1
xlSheet.Cells(i + 1, j + 1).Value = " ' " & .TextMatrix(i, j)
Next j
Next i
End With
xlApp.Visible = True
Screen.MousePointer = vbDefault
Exit Sub
Err_Proc:
Screen.MousePointer = vbDefault
MsgBox "请确认您的电脑已安装Excel! ", vbExclamation, "提示 "
End Sub
'调用方法:
call ExportToExcel(me, "mshflexgrid ")
[解决办法]
打开肯定是要打开的,不然怎么写入数据。不过可以试试xlapp.visible=false 不显示excel
[解决办法]
这个方法,如果数据量大的话就不行...比如超过1000条...
关注中...
[解决办法]
MSHFlexGrid可以直接读入数组
数组可以直接写入Excel
[解决办法]
一个导入到EXCEL的工具,不防一试
SQL导出到EXCEL http://www.onlinedown.net/soft/44040.htm
[解决办法]
如果导入到CSV文件,比较好处理:
intNum = FreeFile
Open strFileName For Output As #intNum
For ii = 0 To MSHFlexGrid.Rows - 1
WriteLine = " "
For jj = 2 To MSHFlexGrid.Cols - 1
TmpStr = MSHFlexGrid.TextMatrix(ii, jj)
WriteLine = WriteLine & ", " & Trim$(TmpStr) '以逗号为分隔符
Next jj
Print #intNum , WriteLine
Next ii
Close #intNum
[解决办法]
同意楼上的,使用CSV文件格式保存,就不需要打开EXCEL了,并且CSV文件格式的默认打开方式就是EXCEL。
一楼说的方法就是VB导入EXCEL的通用方法,数据量大也没有什么问题,至于1000条数据还真的是小意思,几万条我都导过,速度很快的,并且还可以用个PROCESSBAR来显示保存的进度,很直观。