通过VBA操纵Excel的通用类库

原创 2006年06月15日 12:30:00

下面的这个类ExcelLibrary是一个非常通用的通过VBA操纵Excel的类, 是我在工作中总结,整理,借鉴(借鉴了一些微软的例子)并多次改进和使用的,现在在这里共享给大家.
起初程序没有注释,为了便于理解,我刚刚补上了一些注释.

'操纵Excel的通用类库VB.Net

Imports Excel

Public Class ExcelLibrary
  'Excel application代表Excel本身
    Private mExcelApp As Excel.Application
    'Workbook就是Excel中的工作簿
    Private mWorkBook As Excel.Workbook
    'Worksheet就是我们在Excel文件中看到的Sheet1,Sheet2...
    Private mWorkSheet As Excel.Worksheet

    Public Sub New()
      '启动一个Excel应用程序
        mExcelApp = New Excel.Application
    End Sub

    Public Sub Open()
      '新建一个工作簿
        mWorkBook = mExcelApp.Workbooks.Add()
    End Sub

    Public Sub Open(ByVal Template As String)
      '通过模板新建一个工作簿
        mWorkBook = mExcelApp.Workbooks.Add(Template)
    End Sub

    Public Sub SetActiveSheet(ByVal SheetName As String)
      '设置当前活动的Sheet
        mWorkSheet = mWorkBook.Worksheets(SheetName)
    End Sub

    Public Sub AddNewSheet(ByVal SheetName As String)
      '添加一个新Sheet
        mWorkSheet = mWorkBook.Worksheets.Add()
        mWorkSheet.Name = SheetName
    End Sub

    Public Sub HideSheet(ByVal SheetName As String)
      '隐藏某个Sheet(有时这个功能也是需要的)
        mWorkBook.Worksheets(SheetName).Visible = False
    End Sub

    Public Sub CopyRange(ByVal SheetName As String, ByVal Cell1 As String, ByVal Cell2 As String)
      '在Excel中区域性Copy
        SetActiveSheet(SheetName)
        mWorkSheet.Range(Cell1, Cell2).Copy()
    End Sub

    Public Sub PasteRange(Optional ByVal SheetName As String = "")
      '在Excel中区域性Paste
        If SheetName <> "" Then
            SetActiveSheet(SheetName)
        End If
        mWorkSheet.Paste()
    End Sub

    Public Sub ChangeSheetName(ByVal SheetOldName As String, ByVal SheetNewName As String)
      '更改Sheet名字
        mWorkBook.Worksheets(SheetOldName).Name = SheetNewName
    End Sub

    Public Sub SetValue(ByVal CellPosition As String, ByVal Value As String)
      '设置某个单元格的值
        mWorkSheet.Range(CellPosition).FormulaR1C1 = Value
    End Sub

    Public Sub SetValue(ByVal RangeX As String, ByVal RangeY As String, ByVal Value As String(,))
      '设置某一区域的值,这个功能非常有用
        Dim rg As Range
        rg = mWorkSheet.Range(RangeX, RangeY)
        rg.Value = Value
    End Sub

    Public Sub SaveAs(ByVal FileName As String)
      '保存
        mWorkBook.SaveAs(FileName)
    End Sub

    Public Sub Close()
      '关闭
        mWorkSheet = Nothing
        mWorkBook = Nothing
        mExcelApp.Quit()
        mExcelApp = Nothing
        GC.Collect()
    End Sub
End Class

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java设计模式之单例模式(singleton模式)

对Java设计模式中的单例模式(Singleton模式)进行介绍。

Android工具大全

对Android中常用工具进行介绍。

最新鲜最详细的Android SDK下载安装及配置教程

最近Neo突发神经,想要将学过的一些计算机视觉、机器学习中的算法都放到移动设备上去跑跑,因为移动开发是大势所趋嘛,希望能够通过这样一个实践的过程,找到一些新的灵感(该不会是为了赚钱吧…),我自己目前也...
  • Dr_Neo
  • Dr_Neo
  • 2015-11-16 19:27
  • 84100

Android:微信授权登录与微信分享全解析

前言在移动互联网浪潮中,联网APP已经把单机拍死在沙滩上,很多公司都希望自家应用能够有一套帐号系统,可是许多用户却并不一定买账:我凭啥注册你家应用的帐号?微博,微信,QQ几乎成了每个人手机中的必装应用...

Android的logcat命令详解

Android的logcat命令详解。

AVD 创建 之 “An Android Virtual Device that fail to load"

1、从Android下载的软件后。由于Eclipse默认的虚拟机保存目录为C盘。会影响系统。。创建未创建虚拟机之前就配置好相应的数据。以免保存在你系统盘的容量:(1)然后在系统环境变量里设置一个AND...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)