3

私は VS2008、C#、WPF アプリケーション (WebBrowser および Microsoft.Office.Interop.Excel) を使用しています。タスクがあります。読み取り専用モードで WPF フォームで Excel をホストしています。

これどうやってするの:

まず 1. WebBrowser に Excel ファイルを読み込む

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

次へ 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 のテキスト: 「この本は保護されています...など」または「このシートは保護されています...など」

このメッセージ ボックスを非表示にするには、プロパティ 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 に答える