加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net office excel 和wps共存,创建正确的excel对象以便操作ex

发布时间:2020-12-17 07:37:38 所属栏目:百科 来源:网络整理
导读:vb6.0版代码请看vb6.0分类下另外一篇文章 代码实现平台: vs2015+4.0运行库 Log函数为自编函数,代码为给出,请谅解。 ''' summary '''office97 8.0 '''office2000 9.0 '''officeXP (2002) 10.0 '''office2003 11.0 '''office2007 12.0 '''office2010 14.0 '

vb6.0版代码请看vb6.0分类下另外一篇文章


代码实现平台:

vs2015+4.0运行库

Log函数为自编函数,代码为给出,请谅解。

    ''' <summary>
    '''office97              8.0
    '''office2000             9.0
    '''officeXP (2002)        10.0
    '''office2003             11.0
    '''office2007             12.0
    '''office2010             14.0
    '''根据系统安装的Excel(Excel或者wps)创建Excel对象
	''' 一定要先et 然后在ket 最后才是excel
	''' 在系统中,office excel 比wps 表格具有优先级或者是注册表里面某项决定的
    ''' </summary>
    ''' <param name="xlApp"></param>
    ''' <param name="ISAM">索引顺序访问方法</param>
    ''' <param name="filter">文件后缀</param>
    ''' <returns></returns>
    Private Function CreateExcelObject(ByRef xlApp As Object,ByRef ISAM As String,ByRef filter As String) As Boolean
        Dim xlappVersion As Double = 0.0
        Dim funcResult As Boolean = False

        Try
            xlApp = CreateObject("ET.Application")
        Catch ex As Exception
            Debug.Print($"错误代码:{Err.Number}{Environment.NewLine}错误描述:{Err.Description}")
            Debug.Print($"问题描述:{Environment.NewLine}{ex.Message}{Environment.NewLine}具体信息:{Environment.NewLine}{ex.StackTrace}")
            Log($"问题描述:{Environment.NewLine}{ex.Message}{Environment.NewLine}具体信息:{Environment.NewLine}{ex.StackTrace}")
        End Try
        If xlApp Is Nothing Then
            Try
                xlApp = CreateObject("KET.Application")
            Catch ex As Exception
                Debug.Print($"错误代码:{Err.Number}{Environment.NewLine}错误描述:{Err.Description}")
                Debug.Print($"问题描述:{Environment.NewLine}{ex.Message}{Environment.NewLine}具体信息:{Environment.NewLine}{ex.StackTrace}")
                Log($"问题描述:{Environment.NewLine}{ex.Message}{Environment.NewLine}具体信息:{Environment.NewLine}{ex.StackTrace}")
            End Try
        End If
        If xlApp Is Nothing Then
            Try
                xlApp = CreateObject("Excel.Application")
            Catch ex As Exception
                Debug.Print($"错误代码:{Err.Number}{Environment.NewLine}错误描述:{Err.Description}")
                Debug.Print($"问题描述:{Environment.NewLine}{ex.Message}{Environment.NewLine}具体信息:{Environment.NewLine}{ex.StackTrace}")
                Log($"问题描述:{Environment.NewLine}{ex.Message}{Environment.NewLine}具体信息:{Environment.NewLine}{ex.StackTrace}")
            End Try
        End If
        If xlApp Is Nothing Then
            Debug.Print($"来源:{New StackTrace().GetFrame(0).GetMethod.Name} 获取Excel或者WPS对象失败")
            Return funcResult
        End If

        xlApp.Visible = False
        xlappVersion = Convert.ToDouble(xlApp.version)
        Select Case xlappVersion
            Case <= 11.0#
                filter = ".xls"
                ISAM = "Excel 8.0"
                funcResult = True
            Case > 11.0#
                filter = ".xlsx"
                ISAM = "Excel 12.0 Xml"
                funcResult = True
            Case Else
                Debug.Print($"来源:{New StackTrace().GetFrame(0).GetMethod.Name} 获取Excel或者WPS对象失败")
        End Select
        Debug.Print($"来源:{New StackTrace().GetFrame(0).GetMethod.Name} 获取Excel或者WPS对象成功")
        Return funcResult
    End Function


调用

 Dim xlApp As Object = Nothing
 Dim excelFilter As String = ""
 Dim excelISAM As String = ""
 
	'后期绑定Excel对象 不需要知道系统安装的是哪个版本的Excel
        '不需要引用Excel
        If CreateExcelObject(xlApp,excelISAM,excelFilter) = False Then
            MessageBox.Show("本机未安装Excel或者WPS,导出失败!","温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            Exit Sub
        End If



??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读