Aspose.Words生成word檔案
阿新 • • 發佈:2019-02-16
首先設定word模板,可以點選某個單元格插入書籤
插入方法:滑鼠點選word檔案某處,然後 插入--書籤 即可
//關鍵程式碼如下……………………
string tmppath = Server.MapPath("~/Template.doc"); Document doc = new Document(tmppath); //載入模板 //使用書籤 if (doc.Range.Bookmarks["mark"] != null) { //Bookmark mark = doc.Range.Bookmarks["mark"];//根據書籤名稱獲取書籤 //mark.Text = "sean"; } //不使用書籤 通過移動單元格 來新增值 DocumentBuilder builder = new DocumentBuilder(doc); //設定單元格內容對齊方式 builder.ParagraphFormat.Alignment = ParagraphAlignment.Left; builder.MoveToCell(0, 2, 3,0); //tableIndex,rowIndex,columnIndex,characterIndex 初始索引0 builder.Write("chang"); doc.Save("demo.doc", SaveFormat.Doc, SaveType.OpenInWord, Response); //儲存為doc,並開啟 //doc.Save(HttpContext.Current.Server.MapPath(savePath), SaveFormat.Doc);//直接儲存檔案 //PS: 在實際使用過程中發現如果表格都在word模板第一頁的時候,我們可以使用通過更改moveToCell方法第一個引數tableIndex來填寫具體哪個表,但是當模板有若干頁時, 通過更改方法第一個引數值直接報錯(超出表索引) 在網上找了半天,最終發現了一個算是很麻煩的方法:模板插入域(插入--文件部件--域--類別選擇郵件合併點選MergeField輸入名稱),然後Aspose.Words提供一個方法: doc.MailMerge.Execute(string[]fieldNames,object[]values) 及把模板中的域名稱以及陣列對應資料分別組合一個數組,通過該方法可以把資料插入對應域上。這個方法 適用於模板中單元格相對比較少,如果太多的話模板維護起來很麻煩。