天天看點

C#操作Office2007

我用Microsoft.Office.Interop.Word.ApplicationClass 執行個體化word對象 myWordApp 當程式運作時隻啟動了word程序,但是頁面就靜止不動了運作不下去了。

我的程式如下:

object strFileName;

Object Nothing;

Microsoft.Office.Interop.Word.ApplicationClass myWordApp;

Document myWordDoc;

string strContent = "";

protected void Page_Load(object sender, EventArgs e)

{

createWord();

}

private void createWord()

{

strFileName = Request.PhysicalApplicationPath+"test.doc";

Object Nothing = System.Reflection.Missing.Value;

if (System.IO.File.Exists((string)strFileName2))

{

myWordDoc = myWordApp.Documents.Add(ref strFileName , ref Nothing, ref Nothing, ref Nothing);

}

}

程式就是運作到紅色字型處就沒有響應了,但是程式沒有發生任何錯誤和異常。

需要重點說明的是我的程式是B/S,同樣的程式在C/S下是可以正常運作的,而且我的dcom權限配置也沒問題。

請教高手們怎麼解決!!!!!!!

急!!!!!!!!!!!!!!!

另外我用myWordApp = (Microsoft.Office.Interop.Word.ApplicationClass) Microsoft.VisualBasic.Interaction.GetObject("", "Word.Application");

這個來執行個體化時報錯如下:

無法将類型為“System.__ComObject”的 COM 對象強制轉換為類類型“Microsoft.Office.Interop.Word.ApplicationClass”。進入 CLR 且不支援 IProvideClassInfo 或沒有注冊任何互操作程式集的 COM 元件都将包裝在 __ComObject 類型中。這種類型的執行個體不能強制轉換為任何其他類;不過,隻要基礎 COM 元件支援對接口 IID 的 QueryInterface 調用,就能将這些執行個體強制轉換為接口。

設定microsoft word 的通路權限操作

在運作裡面輸入dcomcnfg 指令,彈出元件服務視窗,在組建服務-〉計算機-〉我的電腦-〉dcom配置中找到 Microsoft word 文檔項,點右鍵選擇屬性如下圖所示:

點選"辨別"标簽,選擇"互動式使用者"

點選"安全"标簽,在"啟動和激活權限"上點選"自定義",然後點選對應的"編輯"按鈕,在彈出的"安全性"對話框中填加一個"NETWORK SERVICE"使用者(注意要選擇本計算機名),并給它賦予"本地啟動"和"本地激活"權限。

依然是"安全"标簽,在"通路權限"上點選"自定義",然後點選"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK SERVICE"使用者,然後賦予"本地通路"權限。

這樣,我們便配置好了相應的Excel的DCOM權限。

注意:我是在WIN2003上配置的,在2000上,是配置ASPNET使用者。

最後祝你安裝成功!