我正在编写一个程序来清除excel文件中的空行和空列,我从我自己的问题开始,使用Interop从excel文件中删除空行和空列的最快方法,一切都很顺利
问题是,我想阻止excel在工作簿受密码保护时显示密码对话框,并引发异常而不是
我使用以下代码使用interop打开excel文件:
m_XlApp=New Excel.Application
m_XlApp.visible=False
m_XlApp.DisplayAlerts=False
将m_xlWrkbs设置为Excel.Workbooks=m_XlApp.Workbooks
将m_xlWrkb设置为Excel.工作簿
m_xlWrkb=m_xlWrkbs.Open(strFile)
m_xlWrkb.DoNotPromptForConvert=true
正如一些链接所建议的,我试图传递一个空密码
m_xlWrkb=m_xlWrkbs.Open(strFile,密码:=“”)
或使用
m_xlWrkb.Unprotect(“”)
但是没有运气
有什么建议吗
我找到了解决方案,但我会接受其他可行的答案
问题
当将一个空字符串作为密码传递时,Excel将其视为“无”。因此,它要求输入密码并显示对话框
解决方案
解决方案是将单个引用作为密码,Excel将其视为空字符串。如果工作簿没有密码保护,它将打开,否则将引发以下异常
您提供的密码不正确。确认CAPS LOCK(大写锁定)键已关闭,并确保使用正确的大写字母
代码将为:
m_xlWrkb=m_xlWrkbs.Open(strFile,密码:=“”)
注意
在microsoft excel中,值开头的单引号用于强制设置文本格式
示例’0作为值文本读取0