最近做HR系統,要求可以根據合同模版下載員工的合同,其中合同中要求填寫的信息系統自動補全,那麼就需要根據word模版下載word文檔。我使用了第三方控件aspose.words.dll來實現的。
案例如下:
1、引用aspose.words.dll
2、在word模版中創建標籤,就是把需要填空的數據創建成一個個標籤,然後取數據。
3、word模版標籤創建好了,下一步就是在代碼給相應的標籤賦值了。
我的案例代碼:
string tmppath = Server.MapPath("/offers/模版.doc");
string emp_name = "張三";
string emp_sex = "先生";
string emp_dept = " 銷售部";
string emp_pos = "銷售經理";
string emp_jbgz = "3000元";
string emp_intime = "2010-01-01";
Document doc = new Document(tmppath); //載入模板
DocumentBuilder mBuilder = new DocumentBuilder(doc);
//通過書籤的形式向word模板中插入內容;
if (doc.Range.Bookmarks["emp_name"] != null)
{
Bookmark mark = doc.Range.Bookmarks["emp_name"];
mark.Text = emp_name;
}
if (doc.Range.Bookmarks["emp_sex"] != null)
{
Bookmark mark = doc.Range.Bookmarks["emp_sex"];
mark.Text = emp_sex;
}
if (doc.Range.Bookmarks["emp_dept"] != null)
{
Bookmark mark = doc.Range.Bookmarks["emp_dept"];
mark.Text = emp_dept;
}
if (doc.Range.Bookmarks["emp_pos"] != null)
{
Bookmark mark = doc.Range.Bookmarks["emp_pos"];
mark.Text = emp_pos;
}
if (doc.Range.Bookmarks["emp_jbgz"] != null)
{
Bookmark mark = doc.Range.Bookmarks["emp_jbgz"];
mark.Text = emp_jbgz;
}
if (doc.Range.Bookmarks["emp_intime"] != null)
{
Bookmark mark = doc.Range.Bookmarks["emp_intime"];
mark.Text = emp_intime;
}
doc.Save(emp_name + "的工作合同.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);
完成。