現在有這樣的需求,給Word文檔的指定位置填充上特定數據,例如我們有一個終端,用來打印員工的薪資證明,對於一個公司來說,他的薪資證明模板是固定的,變化的地方是員工姓名,部門,職位等。我們只需要將這些指定數據填寫到指定位置即可。
1. 制作Word模板,
在Word中,有一個東東叫書簽,我們可以在需要填充的地方預先插入特定名稱的書簽。
2. 在指定的Bookmark位置寫入特定數據:
MSWord.Application app = new MSWord.Application(); string destPath = "薪資證明.docx"; string targetPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), destPath); MSWord.Document doc = app.Documents.Open(targetPath, Visible:false); MSWord.Bookmark bmName = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Name"); if(bmName != null) { bmName.Range.Text = "Tom Wang"; } MSWord.Bookmark bmDept = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Department"); if(bmDept != null) { bmDept.Range.Text = "Department"; } MSWord.Bookmark bmJob = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Job"); if(bmJob != null) { bmJob.Range.Text = "Software engineer"; } MSWord.Bookmark bmSalary = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Salary"); if(bmSalary != null) { bmSalary.Range.Text = "10000"; } MSWord.Bookmark bmDate = doc.Bookmarks.OfType<MSWord.Bookmark>().First(bm => bm.Name == "Bookmark_Date"); if(bmDate != null) { bmDate.Range.Text = DateTime.Now.ToShortDateString(); } doc.Save(); doc.Close(); Marshal.ReleaseComObject(doc); Marshal.ReleaseComObject(app);
運行程序,可以將需要的數據插入指定位置。
感謝您的閱讀。