如何把vb6.0的DataGrid显示的数据导出为txt或者excel

如题我现在datagrid显示的是sqlserver数据库里的一个表aa的内容如何在程序界面上设置个导出的按钮并且导出txt或者excel格式的求详细代码,如果满意,追加... 如题

我现在datagrid显示的是sqlserver数据库里的一个表aa的内容
如何在程序界面上设置个导出的按钮
并且导出txt或者excel格式的

求详细代码,如果满意,追加分
oSheet.Range(strColName1).Value = Me.D1.Columns(i).Caption
提示错误啊
展开
 我来答
体制内老黄牛
2007-11-20 · TA获得超过1万个赞
知道大有可为答主
回答量:3980
采纳率:50%
帮助的人:2140万
展开全部
我是直接对ADOC操作的,因此它不会受rows 的visible属性影响
因一般来说,每个DataGrid会对应一个ADODC,或RecordSet对象作为数据源。
直接对它们操作就行了。这样有个好处就是可以根据字段的属性格式化相应的列,如将调整日期或日期的显示格式。

'输出表头
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式