我一直在使用.xlsx文件运行excel导出功能。有时,在加载excel文件时,我使用System.Runtime.InteropServices.Marshal.BindToMoniker()方法。当有问题的文件未打开但存在时,我得到以下结果:
Excel将启动,但不会加载工作簿,也不会加载任何工作表。 Excel显示为空白。
在执行导出的程序之外打开文件时,它以完全相同的方式加载。 Excel是开放的,它在窗口顶部显示Microsoft Excel,但没有可见的工作表。 Excel看起来根本没有任何打开。
进入选项还表明没有工作簿开放。该文件肯定有内容,我可以看到当我在Notepad ++中打开它时该文档有足够的细节让我看到工作簿中有工作表,但不显示。
我不确定如何防止这种损坏以编程方式发生,或如何解决它。任何建议或想法将不胜感激!
为了避免这个问题,我从不在封闭的Excel文件上使用BindToMoniker(通过检查文件是否被锁定,如果它已解锁,我只使用open函数)
这是我遇到此问题时运行的代码。只有在文件存在且未打开时才会发生:
Public Function OpenExcelFile( _
ByRef pobjExcel As Excel.Application, _
ByRef pwkbWorkBook As Excel.Workbook, _
ByVal pstrFileName As String) As Boolean
...
pwkbWorkBook = BindToMoniker(pstrFileName)
pobjExcel = pwkbWorkBook.Parent
pobjExcel.Visible = True 'Temp; I use this to see the state of the file
可能是工作簿被隐藏了吗?在视图选项卡上,如果启用了取消隐藏,则可以显示隐藏的工作簿。
此外,如果您认为工作簿应该可见,则可以通过更新Windows可见属性来显示它。
pobjExcel.Windows(workbookName).Visible = True
加入吧
pobjExcel.Windows(1).Visible = True
在您将Excel设置为可见之后。我相信你正在使应用程序可见,但工作簿仍然不是(至少这是我以前遇到的问题)。这应该解决它。
我在excel 2010中遇到了同样的问题。今天早些时候我保存了文件并关闭了excel。我的计算机进入睡眠模式,当我重新启动并使用Windows资源管理器打开相同的Excel 2010文件时,excel只显示一个空白(灰色)屏幕。只有在VBA编辑器中我才能看到工作簿已打开。
我的解决方案(与上述相同但详细说明)
试试这个
转到查看菜单,然后点击全部排列。它会给你一些选项复选标记Tiled。
它对我有用,希望也适合你。
最好,汗
我有同样的问题,整个工作表在2015Jan01上看不见我去了View菜单并点击了“取消隐藏”图标所有标签都变得可见,我又重新保存了文件;-)
这个简单的解决方案对我有用:打开工作表并转到“查看”选项卡,然后单击“新窗口”。