標籤:style blog http color 使用 os io 檔案
1、使用Docx替換Word模板裡書籤裡內容的一個方法
using Novacode;public class ExportWord { /// <summary> /// 匯出word /// </summary> /// <param name="lBookMarks">書籤資料來源</param> /// <param name="sTemplatePath">匯出Word模板檔案</param> /// <param name="sFileName">匯出檔案名稱</param> public static void ToDocx(IEnumerable<BookMarks> lBookMarks, string sTemplatePath, string sFileName) { using (DocX document = DocX.Load(sTemplatePath)) { List<Bookmark> booklist = new List<Bookmark>(); foreach (Paragraph p in document.Paragraphs) { booklist.AddRange(p.GetBookmarks()); } foreach (BookMarks m in lBookMarks) { foreach (Bookmark b in booklist) { if (b.Name == m.Name) { b.Paragraph.ReplaceText(b.Paragraph.Text, m.Text); } } } HttpContext.Current.Response.ContentType = "application/octet-stream"; string mybrowser = System.Web.HttpContext.Current.Request.Browser.Browser; if (mybrowser.ToLower().IndexOf("firefox") > -1)//Firefox瀏覽器 { HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.docx", sFileName)); } else { HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(sFileName, System.Text.Encoding.UTF8) + ".docx\""); } HttpContext.Current.Response.Clear(); document.SaveAs(HttpContext.Current.Response.OutputStream); HttpContext.Current.Response.End(); } } }
2、書籤類
public class BookMarks { /// <summary> /// 書籤Name /// </summary> public string Name { get; set; } /// <summary> /// 書籤文本 /// </summary> public string Text { get; set; } }
3、使用樣本
public void ExportTest() { List<BookMarks> bList = new List<BookMarks>(); BookMarks b = new BookMarks(); b.Name = "Title"; b.Text = "DocX匯出Word Test"; bList.Add(b); b = new BookMarks(); b.Name = "Content"; b.Text = "Word本文"; bList.Add(b); ExportWord.ToDocx(bList, @"E:\Template.docx", "test"); }