程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 導出word文檔及批量導出word文檔(1),

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

編輯:C#入門知識

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,標題不用插入域,只需在下一行定義好域即可:
  圖片        

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved