从VB中的Datagride中向excel导入数据

80酷酷网    80kuku.com

  datagrid|excel|导入数据  
程序需要,我在网上找了很久才找到,刚刚把程序写好,并加写了注释,希望能帮助大家
再写程序前先引用
microsoft excel 11.0 object Library
我看到的文章是10.0的,我这是office2003是11.0,只要安了excel就有这个引用~
Private Sub cmdsave_Click()
MsgBox "文件保存为: D:\电网配电线路管理信息系统\信息查询结果\事故信息查询结果.xls"
    Dim i As Integer
    Dim j As Integer
    Dim ex As Object
    Dim exwbook As Object
    Dim exsheet As Object
    
    Set ex = CreateObject("Excel.Application")
    Set exwbook = Nothing
    Set exsheet = Nothing
    Set exwbook = ex.Workbooks().Add
    Set exsheet = exwbook.Worksheets("sheet1")
    
    ’在excel里表格的表头,这是根据我的需要添加的标头
    ex.Range("c3").Value = "日期"
    ex.Range("d3").Value = "时间"
    ex.Range("e3").Value = "站点"
    ex.Range("f3").Value = "汇报人"
    ex.Range("g3").Value = "线路双编号"
    ex.Range("h3").Value = "保护动作类型"
    ex.Range("i3").Value = "事故原因"
    ex.Range("j3").Value = "处理负责人"
    ex.Range("k3").Value = "处理方法"
    ex.Range("l3").Value = "处理结果"
    ex.Range("m3").Value = "结束时间"
    ex.Range("n3").Value = "备注"
    ’i为记录个数使用循环将数据全部添加
    For i = 1 To Adodc1.Recordset.RecordCount
    j = 3 + i
    ’k为数据列数
    For k = 0 To 11
    ’通过使用变量k和j变换单元格位置
    q = Chr(99 + k) & j
    ’将datagrid1的数据放到单元格内
    ex.Range(q).Value = DataGrid1.Columns(k)
    Next k
    ’指针下移
    If Adodc1.Recordset.EOF = False Then
    Adodc1.Recordset.MoveNext
    End If
    Next i
    
    ’保存输入到事故信息查询结果.xls
    exwbook.SaveAs "D:\电网配电线路管理信息系统\信息查询结果\事故信息查询结果.xls"
    ’退出excel
    ex.Quit
End Sub
我觉得这段程序很简单而且很使用,使用时不要打开 事故信息查询结果.xls否则会报错
存储时系统会自动提示是否更换文件,根据自己用发来用

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: