999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C#操作Excel實用技巧三則

2019-11-17 04:05:19何再朗張梅
電腦知識與技術 2019年26期
關鍵詞:進程解決方案利用

何再朗 張梅

摘要:Excel是常見的Office應用之一,編程實踐中經常需要對其進行互操作。但在使用C#操作Excel時,經常出現無法關閉進程、無法保存文件和用戶無法同時使用Excel等問題,筆者經過摸索研究,得到了針對以上問題的行之有效的解決方案。

關鍵詞:Excel;互操作;C#

中圖分類號:TP311? ? ? 文獻標識碼:A

文章編號:1009-3044(2019)26-0080-02

開放科學(資源服務)標識碼(OSID):

在Office編程實踐中,經常需要將存放在Excel中的初始數據導入到軟件中,有時又需要將軟件解算得到的數據導出回Excel予以保存,所以利用C#對Excel進行操作的情形時有發生。

利用C#操作Excel,首先需要導入Excel類庫,然后通過互操作調用Excel類庫的類函數。這些基礎性內容在許多地方都有較為詳細的介紹,最詳細的介紹在MSDN,在此不再贅述。本文重點介紹幾個疑難問題的解決方案。

1 無法關閉Excel進程

利用C#操作Excel,經常出現軟件結束退出,但是Excel進程卻沒有被關閉的現象,在任務管理器中可以看到殘留的Excel僵尸進程。這雖然不影響軟件的使用,但是嚴格深究起來屬于內存泄漏,并且軟件運行時間長了或者次數多了,會消耗掉大量系統內存,同時也會帶來不小的安全隱患。關于解決方案,有人建議用kill進程,但是kill進程屬于黑盒操作,存在著不確定性;還有一些人建議用GC回收,但是似乎時靈時不靈,實踐效果也不理想。

這其中的訣竅是,從excelApp中生成、獲取的對象一定要按照它們對應的順序,反序調用Close函數予以關閉,并將變量值統一置為null。當操作系統發現excelApp所有的衍生對象的引用計數均為0,就會自動徹底地關閉Excel進程了。需要注意的是,如果有一個衍生對象沒有被置值為null,從而導致其引用計數不為0,操作系統就會誤認為該對象仍然處在使用狀態,導致Excel進程關閉的失敗。

2 無法保存Excel文件

利用C#操作Excel,有時會出現無法保存Excel文件,軟件報錯退出的情況。基于信息保密和運行效率的考慮,我們的軟件一般會采取靜默模式,即隱藏Excel應用的界面,使其在后臺運行。Excel應用在保存文件時往往會彈出對話框,要求用戶對一些操作(如覆蓋同名文件等)予以確認,但是由于應用界面被隱藏,用戶無法操作,軟件在經過長時間的等待后,得不到響應最終報錯退出。找到了原因,問題解決起來就簡單了,需要將Excel應用的DisplayAlerts屬性置為false關閉提示對話框。

打開Excel應用的代碼修改如下。

3 無法同時使用Excel應用

至此,大部分的問題都已得到妥善的解決,剩下的唯一難題是軟件在操作Excel時,用戶無法同時手工使用Excel。但是軟件在運行時,如果用戶雙擊了一個Excel文件,原本被軟件隱藏的Excel應用就會被顯示出來,其中的數據和操作一覽無余。更糟糕的是,如果此時Excel應用彈出了一個對話框用戶卻不及時操作的話,又會出現上一節所討論的情況,軟件在經過長時間等待后,得不到響應不得不報錯退出。而如果用戶手工操作關閉了軟件運行所需的Excel文件甚或是關閉了Excel應用本身,后果就更為嚴重了,軟件輕則報錯,重則崩潰,還會導致數據的丟失。

筆者經過反復試驗,終于找到問題的成因。Excel應用是一個典型的Windows自動化容器,即便它在隱藏運行時也被要求隨時響應用戶的操作,例如雙擊一個Excel文件等。解決方案是提供“雙應用”備份,即軟件在運行時同時建立兩個Excel應用,其中第一個是緩沖應用,用來響應用戶可能的雙擊操作,第二個則是真實應用,用來向軟件提供數據存取和查詢等服務。需要注意的是,緩沖應用一定要位于真實應用之前,因為操作系統會將檢索到的第一個Excel應用于響應用戶的操作。相關的代碼如下。

進一步說,利用C#在操作Office其他應用(Word、PowerPoint等)時有許多類似的場景,所以C#操作Excel的許多經驗都可以移植借鑒。

以上我們分享了利用C#操作Excel時幾個疑難問題的行之有效的解決方案,目的在于拋磚引玉,供大家參考和討論。

【通聯編輯:李雅琪】

猜你喜歡
進程解決方案利用
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
解決方案和折中方案
利用一半進行移多補少
簡潔又輕松的Soundbar環繞聲解決方案
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
利用數的分解來思考
Roommate is necessary when far away from home
4G LTE室內覆蓋解決方案探討
Moxa 802.11n WLAN解決方案AWK-1131A系列
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 中国国产高清免费AV片| 精品伊人久久久香线蕉| 香蕉久久永久视频| 国产内射在线观看| 亚洲第一精品福利| 亚洲一区波多野结衣二区三区| 国产亚洲精久久久久久久91| 色老头综合网| 国产美女精品一区二区| 青青网在线国产| 五月婷婷丁香综合| 免费A∨中文乱码专区| 亚洲狠狠婷婷综合久久久久| 无码又爽又刺激的高潮视频| 无码AV动漫| 日韩无码精品人妻| 中文字幕日韩久久综合影院| 欧美精品不卡| 又污又黄又无遮挡网站| 国产玖玖视频| 风韵丰满熟妇啪啪区老熟熟女| 亚洲人成网站色7777| 免费人成在线观看成人片| 色AV色 综合网站| 日本不卡视频在线| 日韩欧美国产三级| 2024av在线无码中文最新| 国内精品小视频在线| 国产毛片不卡| av在线人妻熟妇| 九色在线观看视频| 国产一区亚洲一区| 欧美一区二区自偷自拍视频| 在线视频97| 福利国产微拍广场一区视频在线| 色综合天天视频在线观看| 国产精品内射视频| 欧美精品一二三区| 91香蕉视频下载网站| 毛片手机在线看| 精品一区二区三区水蜜桃| 四虎在线高清无码| 91在线激情在线观看| 91精品国产丝袜| 国产经典三级在线| 自拍偷拍一区| 中国国产A一级毛片| 综合网久久| 国产精品大尺度尺度视频| 91精品国产一区| 亚洲精品视频免费看| 秋霞午夜国产精品成人片| 亚洲欧美激情小说另类| 26uuu国产精品视频| 视频二区亚洲精品| 国产精品香蕉在线| 久热re国产手机在线观看| 亚洲动漫h| 久久这里只有精品66| 国产精品久久久久鬼色| 无码高潮喷水在线观看| 亚洲精品无码不卡在线播放| 欧美成人一区午夜福利在线| 在线看片中文字幕| 国产经典在线观看一区| 高h视频在线| 少妇精品久久久一区二区三区| 狠狠干欧美| 国产精品综合色区在线观看| 亚洲午夜福利精品无码| 亚洲中文制服丝袜欧美精品| jizz国产在线| 91色在线观看| 热九九精品| 激情成人综合网| 深夜福利视频一区二区| 欧美专区日韩专区| 欧美区一区二区三| 亚洲福利片无码最新在线播放| 日韩国产欧美精品在线| 欧美精品影院| 亚洲男人天堂2020|