• vb.net向Excel中写入值


    根据网上例子结合自己的工具环境修改后测试可以通过

    我使用的工具:Microsoft Visual Studio 2010,Excel 2007

    一、在D盘新建一个temp文件夹用于存放Excel启动时写入标志,关闭时删除标志,vb.net程序会去查询该标志来知道Excel是否被人为打开或关闭了。

      避免和程序的控制脱节。

    二、在D盘根目录创建一个Excel,按Alt+F11打开代码编辑窗口,插入一个模块,填入如下代码:

    Sub auto_open()  'Excel启动时会自动运行这个宏
    Open "d: empexcel.bz" For Output As #1 '写标志文件
    Close #1
    End Sub
    Sub auto_close()  ''Excel关闭时会自动运行这个宏
    Kill "d: empexcel.bz" '删除标志文件
    End Sub

    然后另存为带宏的Excel,存在D盘根目录,命名为xiao。之后可以看到D盘有一个xiao.xlsm文件,图标上会有一个感叹号,表示是带宏的Excel。

    三、打开Microsoft Visual Studio 2010,新建一个Windows窗体应用程序,工程名命名任意。在默认的From1上拖进两个Button,Text属性设置为open,close。右击工程添加引用,选择COM下的Microsoft Excel 12.0 Object Library组件,并插入如下代码:


    Imports Microsoft.Office.Interop


    Public Class Form1
        Dim xlApp As Excel.Application '定义EXCEL类  
        Dim xlBook As Excel.Workbook '定义工件簿类 
        Dim xlsheet As Excel.Worksheet '定义工作表类

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If Dir("D: empexcel.bz") = "" Then '判断EXCEL是否打开
                xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
                xlApp.Visible = True '设置EXCEL可见 (xlApp.Visible = False '设置EXCEL打开时不可见 )
                xlBook = xlApp.Workbooks.Open("D:xiao.xlsm") '打开EXCEL工作簿 
                xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
                xlsheet.Activate() '激活工作表 
                xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值 
                xlBook.RunAutoMacros(Excel.XlRunAutoMacro.xlAutoOpen) '运行EXCEL中的启动宏 
            Else : MsgBox("EXCEL已打开")
            End If
        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            If Dir("D: empexcel.bz") <> "" Then '由VB关闭EXCEL   
                xlApp.Application.DisplayAlerts = False '关闭EXCEL的警告提示,不然用程序关闭时会有警报提示,还要手动去确定。
                xlBook.RunAutoMacros(Excel.XlRunAutoMacro.xlAutoClose) '执行EXCEL关闭宏 
                xlBook.Close(True) '关闭EXCEL工作簿 
                xlApp.Quit() '关闭EXCEL 
            End If
            xlApp = Nothing '释放EXCEL对象 
            End
        End Sub
    End Class

    四、按F5执行程序,点open控件可以看到Excel被打开第一个格子里被写入abc。点击close关闭Excel。

  • 相关阅读:
    ASP.NET MVC 3 Internationalization
    Windows 8学习笔记(十)Notification
    Windows 8学习笔记(十二)集合控件
    Windows 8学习笔记(七)Input输入设备
    【配置与安装】解决类似umount target is busy挂载盘卸载不掉问题
    【coredump】coredump 使用
    【C++调试】"./xxx: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./xxx)" 执行报错
    【配置与安装】CentOS7 多磁盘合成卷组并创建LVM,挂载到同一目录
    Unix 知识
    3D创作概念入门
  • 原文地址:https://www.cnblogs.com/wangxiaoyang/p/3613877.html
Copyright © 2020-2023  润新知