【问题标题】:Embed Excel 2010 Document in Windows Form在 Windows 窗体中嵌入 Excel 2010 文档
【发布时间】:2012-10-29 16:47:52
【问题描述】:

我整天都在尝试解决这个问题,希望这里的人已经知道如何做到这一点 - 我正在尝试在我的 Windows 窗体中显示 Excel 2010 工作表,但没想到会是这样困难。

所以...根据我在网上看到的情况,最好的方法是通过 WebBrowser 控件 - 我的代码非常简单:

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

但它会弹出一个文件下载对话框。起初,我的问题是,即使我按下“打开”按钮,它也会在单独的窗口中打开 Excel。我设法使用this registry fix 解决了这个问题,但它仍然会在我的网络浏览器中打开它之前弹出对话框,我的最终用户会抱怨。

其他在线解决方案提到了Microsoft dsoframer,但这对我也根本不起作用......

有人知道怎么做吗??简单明了,我只想在我的 windows 窗体中查看 Excel 工作表。

谢谢!!

【问题讨论】:

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


【解决方案1】:

我想出了这个解决方法解决方案:

首先,您必须将 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>

问候

【讨论】:

  • 兄弟们,我只是对如何将它合并到我的 Windows 窗体应用程序中感到有点困惑......我将如何处理我的 webbrowser 控件?我会把这个 HTML / 代码放在哪里?
  • 我想我误解了你的问题,这是一个 web 应用程序的解决方案。另一方面,如果你使用 MHT 格式 Dim strfilename = Application.StartupPath &amp; "\ExcelFIle.mht" WebBrowser1.Navigate(strfilename, False)
【解决方案2】:

对于遇到类似问题的其他人,我发现的最佳解决方案是this one。希望对其他人也有帮助!

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 2018-10-15
    • 2016-05-10
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 2018-02-13
    相关资源
    最近更新 更多