3

我正在使用带有 WPF 应用程序(WebBrowser 和 Microsoft.Office.Interop.Excel)的 VS2008、C# 我有一个任务:以只读模式在 WPF 表单上托管 Excel。

我怎样才能做到这一点:

一、在WebBrowser中加载Excel文件

 Uri _uri = new Uri("FilePath");
 WebBrowserExcel.Navigate(_uri);

Next 2. 在事件 WebBrowserExcel_LoadCompleted

    if ((WebBrowserExcel.Document as Excel.Workbook) == null) return;
       try
       {
          //Get loading WorkBook and set "Protect" for disable editing 
          _Book = WebBrowserExcel.Document as Excel.Workbook;
          _Book.Protect("", Type.Missing, Type.Missing);

          //Set "Protect" for disable editing to WorkSheet
           foreach (Excel.Worksheet _sheet in _Book.Sheets)
           {
               _sheet.Protect("", Type.Missing,Type.Missing,
                              Type.Missing,Type.Missing, true,Type.Missing,
                              Type.Missing, Type.Missing, Type.Missing, 
                              Type.Missing, Type.Missing,Type.Missing,
                              Type.Missing, Type.Missing, Type.Missing
                              );
            } 
        }
        .....

在此之后,当我尝试在 WebBrowser 中编辑文件时,我有一个 Excel 的 MessageBox。MessageBox 的文本:“This Book is Protected...etc”或“This Sheet is Protected...etc”

要隐藏此消息框,我需要设置属性 Excel.Application.DisplayAlerts = false;

3. Set property

    _Book.Application.GetType().InvokeMember("DisplayAlerts", BindingFlags.SetProperty, null, _Book.Application, new object[] { false });

并有例外:

InnerException = {"could Not set the property DisplayAlerts Application class"}

但是如果创建应用程序(不是从 WebBrowserExcel.Document 获取)我可以设置 DisplayAlerts,但我不能将 Excel.Application 托管到 WebBrowser,只有 Excel 的文件...

有没有办法在 WebBrowser 中将 Excel 的文件设置为只读?或者如何设置“DisplayAlerts”?

4

1 回答 1

0

这是一个包 http://support.microsoft.com/kb/165435/en

于 2012-10-11T10:01:19.750 回答