我正在编写一个程序,用于清理Excel文件中的空行和列。我从自己的问题“使用Interop快速删除Excel文件中的空行和列的最快方法”开始,一切都进行得很顺利。
问题在于,当工作簿受到密码保护时,我希望防止Excel显示密码对话框,而是抛出异常。
我正在使用以下代码使用Interop打开Excel文件:
m_XlApp = New Excel.Application
m_XlApp.visible = False
m_XlApp.DisplayAlerts = False
Dim m_xlWrkbs As Excel.Workbooks = m_XlApp.Workbooks
Dim m_xlWrkb As Excel.Workbook
m_xlWrkb = m_xlWrkbs.Open(strFile)
m_xlWrkb.DoNotPromptForConvert = true
我尝试按照一些链接的建议输入空密码。
m_xlWrkb = m_xlWrkbs.Open(strFile, Password:="")
或者使用
m_xlWrkb.Unprotect("")
但是没有运气。
有什么建议吗?
HasPassword
属性 https://msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.workbook.haspassword(VS.80).aspx 然后您可以自己抛出异常。 - Esselansworkbook.open()
方法时,密码对话框会显示。 - Hadi