AspNet根據模板匯出Word文件(一)
阿新 • • 發佈:2019-02-10
前言
最近的專案中需要應用到根據Wrod模板匯出文件的需求,一個很實用的功能。下面就來分享一下我的實現過程:
內容
環境:Asp.Net 新增:Aspose.Words Dll檔案的引用
步驟一:製作Wrod模板
通過編輯域來設定我們要繫結的欄位。
步驟二:獲取需要插入的資料
string tempPath = HttpContext.Current.Server.MapPath("~/templates/Temp_Interview.docx");
const string saveFold = "Word/";
string outputPath = HttpContext.Current .Server.MapPath("~/" + saveFold);
if (!Directory.Exists(outputPath))
Directory.CreateDirectory(outputPath);
string fileName = model.ID + model.AppName + ".docx";
outputPath += fileName;
//載入模板
Document doc = new Document(tempPath);
// -使用者基本資訊-
String[] fieldNames = new String[]
{
"UserId",
"AppName",
"Sex",
"BirthDate",
};
Object[] fieldValues = new object[fieldNames.Length ];
fieldValues[0] = model.ID;
fieldValues[1] = model.AppName;
fieldValues[2] = model.Sex;
fieldValues[3] = model.BirthDate;
doc.MailMerge.Execute(fieldNames, fieldValues);
步驟三:匯入資料並設定儲存路徑
//獲取下載地址
String StrVisitURL = GetVisitURL() + saveFold + fileName;
//合併模版,相當於頁面的渲染
doc.MailMerge.Execute(new[] { "PageCount" }, new object[] { doc.PageCount });
//儲存合併後的文件
doc.Save(outputPath);
return StrVisitURL;
小結
這樣我們就可以根據獲取到的資料填入到設定好的模板中啦,實現的過程並不難,主要是其中的方法以及AsposeWords的呼叫。下一篇文章我將繼續深入應用和大家分享關於多條資料動態匯入Word的實現方案。榮幸與您分享!