C# 導出word文檔及批量導出word文檔(1)


     這里用到了兩個dll,一個是aspose.word.dll,另外一個是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用於批量導出word文檔的,通過把文件打包成壓縮包,以文件流的方式輸出下載。aspose.word.dll最好使用最新版的,14.5或者更高,我使用的是14.5版本,頁面是采用mvc的語法。在這里感謝趙某人為我提供的幫助。         首先制作好word模板,使用模板可以避免在代碼中對word進行排版,方便簡單。書簽和文本域的方法分別說明。        
   (1)書簽         
    打開word文檔,選擇“插入” →“書簽”,在打開的對話框中輸入要添加的書簽名,書簽名可以隨意定義,不過最好是數據表一致,這樣在代 碼里就減少了判斷,然后點擊添加,算完成了。書簽是看不見的,就隱藏的,但它確確實實存在着,書簽的局限性在於:一個word文檔里只有一個書簽,不能同名,且若獲取列表時,書簽只能在文檔的開頭,前面不能插有其它的書簽或域,而文本域則不限,但是如果是二維域的話,文檔里有相同的兩個字段的話,會導致后面的值會被前面的覆蓋,比如有兩個starttime的二維域,第二個starttime的值為變成第一個的starttime的值,而不是其真正數據表里的值。循環的列表則不會出現這樣的情況。所以我用的都是文本域,相關設置如下圖:
 
圖片
 
圖片
 
       (2)文本域         
        打開word文檔,將光標放在插入點,選擇“插入” →“文檔部件”→“域”,在打開的對話框中,選擇“郵件合並”→“MergeField”,輸入要添加的名稱,名稱可以隨意定義,不過最好是數據表一致,這樣在代碼里就減少了判斷,然后點擊確定,算完成了。這里特別要注意的是,定義圖片的域的方式,要加Image:,如下圖:
 
圖片 
圖片
 
  圖片
 
       以上的書簽和域是獲取單條記錄的,如果是多條記錄的話,則需要循環列表並填充數據,相關設置如下:
  • 書簽列表,上面的編號,姓名,時間也要插入書簽,table是到時循環出來的列表插入的位置:             
    
圖片  
  • 域,主要是注意tablestart和tableend,標題不用插入域,只需在下一行定義好域即可:
 
圖片
 
   
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM