您的位置:首页 > 编程语言 > VB

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

2016-08-03 00:01 791 查看
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'不需要引用ExcelIf CreateExcelObject(xlApp, excelISAM, excelFilter) = False ThenMessageBox.Show("本机未安装Excel或者WPS,导出失败!", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Information)Exit SubEnd If

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: