亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

.net下實現Word動態填加數據打印

2024-07-10 13:14:45
字體:
來源:轉載
供稿:網友
今天研究了一下.net下實現Word動態填加數據打印的做法,覺得頗有收獲~ 
以前做過Excel相關的東西,所以對OFFICE的COM有一些了解,很順利的找到了需要引用的COM和其幫助文檔~具體做法是在引用里添加 COM --------Microsoft word 11.0 object library, 然后引入命名空間: 
復制代碼代碼如下:

using WordApplication = Microsoft.Office.Interop.Word.Application; 
using Document = Microsoft.Office.Interop.Word.Document; 
using Bookmark = Microsoft.Office.Interop.Word.Bookmark; 
具體實現代碼: 

WordApplication word = null; 
/**//// <summary> 
/// 實現動態添加數據打印預覽 
/// </summary> 
/// <param name="path">word模板路徑</param> 
/// <param name="adStu">調劑學生相關信息對象</param> 
private void PrintPreview(string path, AdStuInfo adStu) 
...{ 
if (word == null) 
...{ 
word = new WordApplication(); 

object oMissing = System.Reflection.Missing.Value; //這個東西找了好久,不像操作Excel,用Type.mising還不行. 
object path1 = (object)path; 
Document doc = null; 
doc = word.Documents.OpenOld(ref path1, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); 
替換書簽#region 替換書簽 
object markName = "報考單位"; 
Bookmark bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = adStu.SiSch; 
markName = "報考專業"; 
bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = adStu.SiMa; 
markName = "考生姓名1"; 
bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = adStu.Name; 
markName = "考生編號"; 
bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = adStu.No; 
markName = "調劑專業"; 
bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = adStu.AdMa; 
markName = "打印時間"; 
bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = GetDate().ToString(); 
markName = "考生姓名2"; 
bm = doc.Bookmarks.get_Item(ref markName); 
bm.Range.Text = adStu.Name; 
#endregion 
word.Visible = true; 
doc.PrintPreview(); 
具體解釋: 首先有一個模板.doc文件,在該模板內需要添加數據的地方設置成書簽,.net程序所要的事情就是打開該模板,用具體需要添加的值去替換先設定好的書簽,然后返回Word的打印預覽頁面,思路很簡單~但是問題也是有滴~~ 

這個程序是做打印我們學院研究生辦發復試生調卷函用的,但是表格是從學校研究生部那弄來的,主要還是在那邊蓋的章~所以就只能用那些表格來打,但是給的表格留的空實在太小,沒法用同樣的字體給打上去,怪就只能怪研究生部根本沒想到我們這會有這個高級的東西~~哈哈~估計一般都是手工填的~~~明天過去不知道具體要怎么弄,估計這東西在打印調卷函是發揮不出作用了~~~留著以后肯定有用! 

4月16日修改: 

幾天前做的仔細想想還是有需要改進的地方.我前面做的只是一個個文檔的填,一個個的打印,考慮資料上百個以后這樣做打印機的打印的效率不高,因為每次只給打印機發送一個打印任務,它接受下一個任務是需要時間的,所以我的想法是把需要打印的文檔生成成一個文檔,這樣不但可以保存文檔,還可以只要向打印機發送一個任務就可以打印資料了,NB的打印機打印速度是很快的~~ 

把具體的操作寫下來吧~思路是打開兩個word文檔(當然,生成過程中全不可見),一個還是按照前面說的替換書簽,但是不做打印處理,而是復制到另外一個文檔(該文檔存儲所有已經生成好的表格,最后得到的就是這個word文檔,打印或者保存隨便他們).具體的代碼如下: 



先在using里引如: 
using Range = Microsoft.Office.Interop.Word.Range; 

doc.Content.Copy(); //復制doc里的內容,doc是每次做替換書簽的文檔. 
object save = false; 
doc.Close(ref save, ref oMissing, ref oMissing); //關閉doc. 
Range range = printDoc.Content; //全中printDoc里的全部內容,printDoc是目標保存文檔. 
range.Collapse(ref oMissing); //確定粘貼的位置,其實這個地方我想放一個有效的參數,把粘貼的位置設為文檔的末尾,而不是用默認的文檔的最前面,但是幫助文檔是VB寫的,傳了一個Direction:=wdCollapseEnd的東東,我弄半天沒弄出來,虧我還是懂VB的~~傷心~以至于我都忘了傳個空值過去,卡了老半天!謝謝某人和我發了幾條短信,就一下把我打通了~ 
range.Paste(); //粘貼到目標位置,一次填寫就完成了. 


雖然是這樣,但是在生成目標文檔的時候也是很耗資源的,我看了一下那程序竟然占了100多M的內存!!而且~~而且~~我的機器在前兩次實驗都沒頂住!死機了~~當時真是在抓狂了~誰知道后來幾次竟然無聲無息的成功!可是想想學院那機器能扛住么~~哎繼續優化吧!這次把界面也改了一下,上面的生成在一的單獨線程里,以至于主界面不會像死了樣的,而且在主界面上還做了個顯示生成狀態的Lable,這東西還真管用~后面兩次的實驗,看著已生成數目超過前兩次死機的數目~~緊張的心情緩解了~再看著數目超過100~~高興了~最后慢慢接近完成數目時~~興奮得抓狂!!!!!哈~~ 

哎~廢話多了點~有用的就那么幾行代碼~ 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美中文日韩在线v日本| 国产人妖伪娘一区91| 日韩免费观看在线观看| 国产97在线播放| 欧美另类极品videosbest最新版本| 亚洲自拍偷拍色图| 久久的精品视频| 中文字幕日韩av综合精品| 欧美成人免费在线观看| 日本欧美精品在线| 亚洲欧洲第一视频| 日韩中文在线视频| 久久这里有精品视频| 亚洲一区二区三区777| 日韩在线观看视频免费| 91系列在线播放| 亚洲人成欧美中文字幕| 国产精品99一区| 亚洲欧洲在线观看| 欧美精品一二区| 久久综合国产精品台湾中文娱乐网| 伊人亚洲福利一区二区三区| 精品成人69xx.xyz| 日韩av电影在线免费播放| 久久久久久久香蕉网| 亚洲国产一区二区三区四区| 九九久久国产精品| 欧美日韩日本国产| 欧美猛少妇色xxxxx| 欧美精品久久久久久久久| 日韩精品极品在线观看| 欧美极品在线播放| 北条麻妃99精品青青久久| 中文字幕亚洲无线码在线一区| 亚洲成人在线视频播放| 欧美成人在线网站| 国产综合色香蕉精品| 国产精品狼人色视频一区| 中文字幕自拍vr一区二区三区| 欧美在线日韩在线| 亚洲一区www| 成人一区二区电影| www高清在线视频日韩欧美| 啪一啪鲁一鲁2019在线视频| 亚洲欧美国产精品久久久久久久| 高清欧美一区二区三区| 欧美性猛交xxxx乱大交3| 日韩精品视频中文在线观看| 久久在线免费视频| 亚洲第一精品久久忘忧草社区| 色久欧美在线视频观看| 热久久99这里有精品| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美国产日韩中文字幕| 欧美午夜女人视频在线| 在线观看免费高清视频97| 久久人人爽人人爽爽久久| 欧美日韩人人澡狠狠躁视频| 成人xvideos免费视频| 精品国产一区二区三区久久久狼| 亚洲欧美精品在线| 欧美一级高清免费| 亚洲激情在线观看| 91精品国产91久久久久福利| 亚洲欧美国产另类| 亚洲第一页中文字幕| 精品国内产的精品视频在线观看| 国产精品无av码在线观看| 亚洲片av在线| 欧美色另类天堂2015| 午夜精品一区二区三区在线视频| 91精品在线观看视频| 日韩在线观看免费高清| 亚洲精品久久久久久久久| 欧美一区深夜视频| 国产精品美腿一区在线看| 欧美日韩一区二区在线| 国产69精品99久久久久久宅男| 欧美自拍视频在线观看| 91香蕉亚洲精品| 亚洲tv在线观看| 亚洲国产精品va| 日韩免费电影在线观看| 视频直播国产精品| 国产一区二区三区高清在线观看| 欧美福利视频在线观看| 亚洲高清久久久久久| 久久久国产精彩视频美女艺术照福利| 这里只有精品在线观看| 国产日韩欧美夫妻视频在线观看| 日韩精品视频免费| 91精品久久久久久久久中文字幕| 91av视频在线播放| 欧美激情久久久| 日韩福利视频在线观看| 中文字幕v亚洲ⅴv天堂| 国产成人avxxxxx在线看| 91精品国产综合久久久久久蜜臀| 日韩中文第一页| 高清欧美电影在线| 国产成人综合精品| 国产一区二区三区丝袜| 亚州成人av在线| 欧美激情精品久久久久久免费印度| 精品视频在线播放色网色视频| 国产精品久久久久久久久久久不卡| 在线看福利67194| 九九热精品视频| 国产精品流白浆视频| 国外成人免费在线播放| 日韩av大片在线| 久久久精品亚洲| 中日韩美女免费视频网站在线观看| 亚洲国产欧美一区二区三区久久| 91人人爽人人爽人人精88v| 国产成人精品免费久久久久| 亚洲欧美中文日韩v在线观看| 免费99精品国产自在在线| 亚洲精品一区二三区不卡| 欧美理论片在线观看| 欧美日韩在线免费| 亚洲欧美日韩爽爽影院| 91日本在线视频| 日韩大片在线观看视频| 国产精品你懂得| 欧美精品在线播放| 久久久999精品视频| 欧美日韩电影在线观看| www.欧美视频| 国产99久久久欧美黑人| 欧美大尺度电影在线观看| 日韩av中文字幕在线播放| 欧美性生交大片免费| 精品国产一区二区三区四区在线观看| 久久精品视频导航| 伊人伊成久久人综合网站| 91亚洲人电影| 成人乱人伦精品视频在线观看| 久久九九全国免费精品观看| 亚洲精品久久在线| 久久97精品久久久久久久不卡| 精品一区二区三区四区在线| 久久久久久免费精品| 日韩欧美国产免费播放| 性欧美xxxx交| 91香蕉国产在线观看| 久久综合久久美利坚合众国| 亚洲精品丝袜日韩| 久久久久久久一区二区| 国内精品久久久久影院优| 国产精品网站大全| 日本欧美黄网站| yw.139尤物在线精品视频| 国产精品专区第二| 欧美日本黄视频| 日韩美女在线观看一区| 日韩高清电影好看的电视剧电影| 国产精品视频久久久久| 国模精品视频一区二区三区| 亚洲国产精彩中文乱码av在线播放| xvideos成人免费中文版| 亚洲精品自拍偷拍| 日韩在线一区二区三区免费视频| 91久久国产精品91久久性色|