有誰遇到過類似的問題:兩個(gè)word文檔之間進(jìn)行copy、paste操作時(shí)出現(xiàn)以下錯(cuò)誤: 此方法或?qū)傩詿o效,因?yàn)榧糍N板是空的或無效的!
生成服務(wù)合同的時(shí)候,合同附件有一個(gè)服務(wù)內(nèi)容描述,這是需要根據(jù)配置不同的產(chǎn)品服務(wù)內(nèi)容都不一樣。從對應(yīng)的字模板中讀出內(nèi)容顯示在合同中。生成服務(wù)合同我用的是Office的COM組件,從子模板中讀內(nèi)容到服務(wù)合同,我就用了復(fù)制方法。?? Range.Copy();
object Nothing = System.Reflection.Missing.Value; Word.Application attachApp = new Application(); object type = WdBreakType.wdSectionBreakContinuous; Word.Document attachDoc = attachApp.Documents.Open(ref docFile, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing); attachDoc.Select(); attachApp.Selection.WholeStory(); attachDoc.Sections[1].Range.Copy(); object attach_ServiceContent = "attach_ServiceContent"; doc.Bookmarks.get_Item(ref attach_ServiceContent).Range.InsertBreak(ref type); doc.Bookmarks.get_Item(ref attach_ServiceContent).Range.PasteAndFormat(WdRecoveryType.wdPasteDefault); attachApp.NormalTemplate.Saved = true; object doNotSaveChanges = WdSaveOptions.wdDoNotSaveChanges; attachDoc.Close(ref doNotSaveChanges, ref Nothing, ref Nothing); attachApp.Quit(ref doNotSaveChanges, ref Nothing, ref Nothing);
但是現(xiàn)在不穩(wěn)定,有時(shí)間能生成成功,有時(shí)候報(bào)錯(cuò):此方法或?qū)傩詿o效,因?yàn)榧糍N板是空的或無效的。
我在網(wǎng)上找資料,也沒有查出什么結(jié)果,有人說是:由于執(zhí)行上述動(dòng)作時(shí)間不夠?qū)е隆???? 如果能捕獲這種錯(cuò)誤,并進(jìn)行延時(shí)直到它完成這個(gè)動(dòng)作;則能解決這個(gè)問題; ??? 但我不知如果才能捕獲上述錯(cuò)誤;并進(jìn)行相應(yīng)處理.
//IDataObject data=Clipboard.GetDataObject();
有些人說用以上的做法,得到剪貼板的內(nèi)容。這種做法取到的data為null根本不能達(dá)到效果,此時(shí)是因?yàn)閣ord中的剪切板和系統(tǒng)剪切板并不一樣
求助,怎么樣得到 Word 剪貼板 的內(nèi)容,然后判斷 Word 剪貼板 是否為空,為空就延時(shí)5秒再復(fù)制一次。
8 回答

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
我要得到的是 word 的剪貼板不是客戶端的剪貼板,我的word 是生成好之后保存存在服務(wù)端的,客戶端還有一個(gè)下載功能,并不是保存在客戶端的。

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
你想讓客戶端下載這個(gè)word是么?那弄一個(gè)專門的下載頁面,就行了,跟剪切板有什么關(guān)系?難道你是想先把服務(wù)器上這個(gè)word文件先復(fù)制,然后返回給客戶端?如果是這想法的話,還是先去學(xué)習(xí)一下基礎(chǔ)。

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
呵呵,可能我的意思沒有表達(dá)清楚,我要實(shí)現(xiàn)的功能是在線生成word格式的 合同文檔;這個(gè)合同文檔中包含附件1,附件2等區(qū)域,而附件1,附件2等是也都是保存在服務(wù)端的word文件,需要通過office組件去讀取這些附件word文檔,然后把讀取到的附件word文檔的數(shù)據(jù)添加到合同文檔中去,最后整合成一個(gè)完整的word文檔, 生成好之后提供給客戶端下載,這其中就涉及到兩個(gè)word文檔之間進(jìn)行copy、paste操作,而我這個(gè)問題就是在2個(gè)word文檔之間進(jìn)行copy、paste操作中遇到的。。。
----------------------------------------------------------
例如我現(xiàn)在有2個(gè)word文件; 第一個(gè)word文件叫 【合同.doc】;第二個(gè)文檔叫 【附件.doc】;【合同.doc】有一個(gè)區(qū)域?yàn)?顯示附件的。我現(xiàn)在要做的就是 通過 office組件讀取【附件.doc】然后把讀取到的數(shù)據(jù)粘貼到 【合同.doc】的附件區(qū)域,這樣就跟 word中的剪切板產(chǎn)生關(guān)系了;貌似貼出的代碼里就可以看到。。。 不知道我這樣解釋是否清楚?
----------------------------------------------------------
例如我現(xiàn)在有2個(gè)word文件; 第一個(gè)word文件叫 【合同.doc】;第二個(gè)文檔叫 【附件.doc】;【合同.doc】有一個(gè)區(qū)域?yàn)?顯示附件的。我現(xiàn)在要做的就是 通過 office組件讀取【附件.doc】然后把讀取到的數(shù)據(jù)粘貼到 【合同.doc】的附件區(qū)域,這樣就跟 word中的剪切板產(chǎn)生關(guān)系了;貌似貼出的代碼里就可以看到。。。 不知道我這樣解釋是否清楚?

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
那是OFFICE組件的事情了,應(yīng)該跟剪切板也沒什么關(guān)系,你仔細(xì)看看OFFICE的組建里面提供的API吧,然后拼接到一塊兒以后生成臨時(shí)文件放到你的某個(gè)目錄下,然后供客戶端下載。
- 8 回答
- 0 關(guān)注
- 382 瀏覽
添加回答
舉報(bào)
0/150
提交
取消