在Windows窗体中嵌入Excel 2010文档

时间:2012-10-29 16:47:52

标签: c# .net vb.net excel interop

我一直试图解决这个问题一整天,并希望这里有人已经知道如何做到这一点 - 我试图在我的Windows窗体中显示Excel 2010工作表并且没想到这很难。

所以...从我在网上看到的,最好的办法是通过WebBrowser控件 - 我的代码就是SUPER easy:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim strfilename = Application.StartupPath & "\SheetXX.xlsx"
    WebBrowser1.Navigate(strfilename, False)

End Sub

但它会弹出一个“文件下载”对话框。起初,我的问题是,即使我推动了#34; Open"按钮,它在一个单独的窗口中打开Excel。我设法使用this registry fix进行了修复,但在我的webbrowser中打开它之前它仍会弹出对话框,我的最终用户会抱怨它。

其他在线解决方案提到了微软的dsoframer,但这对我来说根本不起作用......

任何人都知道如何使这项工作?简单而言,我只想在窗体中看到Excel工作表。

谢谢!

2 个答案:

答案 0 :(得分:0)

我找到了解决方法解决方案:

首先,您必须将Excel文件另存为MHT格式。然后,只需添加一个iFrame:

<p style="text-align:center">

    <iframe id="ExcelID" src="Reports/ExcelFile.mht?wmode=transparent" 
     width="100%" height="800" wmode="transparent" style="z-index: -1"></iframe>
</p>

wmode="transparent" style="z-index: -1是因为有时 menuitem “隐藏”了iFrame内容的背后。我不知道你有没有,但你可以删除它。

简单方法:

 <iframe src="Reports/ExcelFile.mht" width="100%" height="800"></iframe>

此致

答案 1 :(得分:0)

对于其他遇到类似问题的人来说,我发现做我想要的最佳解决方案是this one。希望它也能帮助别人!!