【发布时间】:2017-10-25 09:37:17
【问题描述】:
我正在编写一个程序来清除空行和空列中的 excel 文件,我从我自己的问题 Fastest method to remove Empty rows and Columns From Excel Files using Interop 开始,一切都很好。
问题是我想在工作簿受密码保护时阻止 excel 显示密码对话框,并抛出异常而不是那个。
我正在使用以下代码通过互操作打开 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("")
但没有运气。
有什么建议吗?
【问题讨论】:
-
interop 有
HasPassword属性msdn.microsoft.com/en-us/library/… 然后可以自己抛出异常 -
@Jaxedin 我同意你的观点,但是在打开文件之前无法访问此属性,所以它不起作用,当调用
workbook.open()方法时会显示密码对话框 -
@Jaxedin 我找到了解决办法看看
标签: c# excel vb.net winforms excel-interop