日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WPS文本域替换不完全的问题

發布時間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPS文本域替换不完全的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間用戶反饋我們的一個Active-X控件在對WPS文檔進行文本域操作時無法完全替換值,但是在WORD中不存在該問題。通常來說WPS的許多接口都和WORD相同,DISPID也幾乎一致(WPS Document的Application的DISPID和WORD不同,一個是0x000003e8而另一個是0×00000001)。于是將替換核心代碼抽出做成一個命令行工具進行測試,代碼如下:

2 std::wcout.imbue(std::locale(“chs”)); 3 4 #ifndef DEBUG 5 wcout << *(argv + 1) << endl; 6 #endif 7 8 CComPtr<IOleObject> pole = NULL; 9 CComPtr<IBindCtx> pbctx = NULL; 10 CComPtr<IMoniker> pmkfile = NULL; 11 HRESULT hr = S_OK; 12 BIND_OPTS bopts = { sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, 0, 10000 }; 13 14 #ifdef DEBUG 15 LPOLESTR pwszFile = _T(“E:\\Test.wps”); 16 #else 17 LPOLESTR pwszFile = *(argv + 1); 18 #endif 19 20 bopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); 21 22 ::CoInitialize(NULL); 23 24 hr = CreateBindCtx(0, &pbctx); 25 hr = pbctx->SetBindOptions(&bopts); 26 hr = CreateFileMoniker(pwszFile, &pmkfile); 27 hr = pmkfile->BindToObject(pbctx, NULL, IID_IOleObject, (void**)&pole); 28 29 CComPtr<IDispatch> pdisp; 30 CComPtr<IDispatch> pFields; 31 32 hr = pole.QueryInterface<IDispatch>(&pdisp); 33 hr = Marshal::GetIDispatchProperty(pdisp, DISP_DOCUMENT_FIELDS, &pFields); 34 35 LONG lCount; 36 37 hr = Marshal::GetCollectionCount(pFields, &lCount); 38 39 printf(“Field count = %ld\r\n”, lCount); 40 41 for (LONG i = 1; i <= lCount; ++i) { 42 CComPtr<IDispatch> pField, pCode, pResult; 43 CComBSTR strText; 44 LONG lStart, lEnd; 45 46 Marshal::GetCollectionItem2(pFields, i, &pField); 47 Marshal::GetIDispatchProperty(pField, DISP_FIELD_CODE, &pCode); 48 Marshal::GetBSTRTypeProperty(pCode, DISP_RANGE_TEXT, &strText); 49 Marshal::GetI8TypeProperty(pCode, DISP_RANGE_START, &lStart); 50 Marshal::GetI8TypeProperty(pCode, DISP_RANGE_END, &lEnd); 51 52 wcout << lStart << _T(” “) << lEnd << _T(” “); 53 wcout << wstring(strText) << endl; 54 55 Marshal::GetIDispatchProperty(pField, DISP_FIELD_RANGE, &pResult); 56 Marshal::PutBSTRTypeProperty(pResult, DISP_RANGE_TEXT, CComBSTR(_T(“hello, world”))); 57 } 58 59 CComPtr<IPersistFile> ppfile; 60 61 hr = pole.QueryInterface<IPersistFile>(&ppfile); 62 hr = ppfile->Save(pwszFile, TRUE); 63 64 wcout << _T(“保存成功”) << endl; 65 66 ::CoUninitialize(); 67 68 getchar(); 69 70 return 0;

測試環境1:Windows Server 2008 R2 64位 + WPS Office 2009專業版

測試結果:一個有11個文本域的文檔只替換了6個

測試環境2:Windows Server 2008 32位 + Microsoft Office 2007

測試結果:一個有11個文本域的文檔全部替換成功

測試環境3:Windows 7 64位 + Microsoft Office 2010

測試結果:一個有11個文本域的文檔全部替換成功

測試環境4:Windows XP 32位 + WPS Office 2009專業版

測試結果:一個有11個文本域的文檔只替換了6個

之前金山研發人員確認用WORD的方式沒有問題,但多次測試結果表明WORD的文本域替換在WPS中無法完全奏效。WPS需要在設置Result.Text屬性前,調用Collapse函數才可以完成替換:pResult.Invoke0(DISP_RANGE_COLLAPSE);

轉載于:https://www.cnblogs.com/junchu25/archive/2012/08/10/2631154.html

總結

以上是生活随笔為你收集整理的WPS文本域替换不完全的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色一及毛片 | 久久作爱视频 | 乱淫的女高中暑假调教h | 成人性爱视频在线观看 | 凹凸精品一区二区三区 | 欧美日韩中文 | 日韩精品亚洲精品 | 91蜜桃视频在线观看 | 激情综合丁香五月 | 成人做爰69片免费看 | 人人爽夜夜爽 | 农村妇女av| 有码一区二区 | 大尺度做爰呻吟舌吻网站 | 福利在线观看 | 日本xxxx高清 | 国产精品.www | 银杏av | 悠悠色综合 | 亚洲精品久久久久中文字幕二区 | 少妇久久久久久久久久 | 国产精品中文无码 | 在线免费看av | 在线观看av的网站 | 精品国产一区二区三区日日嗨 | 很污的网站 | av男人的天堂在线 | 黄色片免费 | 中文字幕第一页av | 日韩精品高清在线 | 丰满少妇在线观看bd | 波多野结衣一本一道 | 尤物毛片 | 波多野结衣在线播放视频 | 综合性色| 欧美色图片区 | 国产不卡视频在线播放 | www黄色在线观看 | 午夜国产一区二区 | www.成人国产 | 二区在线视频 | free性娇小hd第一次 | 中文在线第一页 | 亚洲免费av一区二区 | 秋霞av网| 一区二区精品在线观看 | a级黄色小说 | 亚洲啪啪网 | 国产乱人伦精品 | 亚洲v国产v | 日本天堂一区 | 欧美乱人伦 | 无码人妻aⅴ一区二区三区69岛 | 国产中文字幕在线播放 | 国产男男gay体育生白袜 | 亚洲高潮 | 黄色a一片| 91一区| aaa级片 | 中文字幕在线观看 | 中文字幕一区二区三区免费 | 欧美色亚洲 | 色悠悠国产 | 激情av网 | 国产一区综合 | 国产ts人妖调教重口男 | 羽月希奶水一区二区三区 | 欧美激情一区二区三区 | 免费av影视 | 国产剧情一区二区三区 | 人妻无码一区二区三区久久99 | 久久久久一区二区三区 | av大全在线播放 | 韩国av一区二区三区 | 深爱开心激情网 | www三级免费 | 欧美激情国产日韩精品一区18 | 天堂在线中文在线 | 国产乱真实合集 | 91精品在线免费观看 | 久久久中文网 | 日韩激情免费 | 亚洲淫 | 久在线观看 | 日韩有色 | 中文在线最新版天堂8 | 新狠狠干 | 四虎永久在线 | 国产精品亚洲а∨天堂免在线 | 亚洲精品视频三区 | 亚洲av日韩av不卡在线观看 | www.欧美成人 | 色偷偷免费费视频在线 | 欧美xxxx黑人又粗又长密月 | 日韩欧美在线视频播放 | 神马久久久久久久久久 | 日韩精品一区二区三区四区五区 | www国产免费 | 三度诱惑免费版电影在线观看 |