入門請看:
【原創翻譯】開源Word讀寫組件DocX介紹與入門[資料已發送]
我也是通過看上面的入門的。
1.DocX通過word模板批量導出用戶簡歷
由於Docx有兩種方法可以自定義屬性:1.1通過word模板文件(在word模板中定義好自定義屬性) 1.2 用代碼創建word模板,並同時用代碼創建自定義屬性。
1.1通過word模板文件(在word模板中定義好自定義屬性),自己新建一個模板文件。

每個要替換的部分,都定義成自定義屬性

域代碼如下:TAge 就為自定義屬性名稱

代碼如下:
private void CreateInvoice() { DocX g_document; try {
//導入模板 g_document = DocX.Load(Server.MapPath(@"moban\Translator.docx")); //查數據,遍歷。 DataTable dt = sqldb.GetDataTable("select * from test"); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { //把需要填充的數據,替換模板中的信息,並保存 g_document = CreateInvoiceFromTemplate(DocX.Load(Server.MapPath(@"moban\Translator.docx")),dr); g_document.SaveAs(Server.MapPath(@"translatorTemp\" + dr["name"].ToString() + ".docx")); } } } catch (FileNotFoundException) { //如模板不存在時,先創建模板,再執行上班操作 //g_document = CreateInvoiceTemplate(); //g_document.Save(); //CreateInvoice(); } }
下面代碼為填充數據方法
private DocX CreateInvoiceFromTemplate(DocX template,DataRow dr)
{
//為自定義屬性賦值,CustomerProperty(name,values),name就是我們剛剛在word中定義的名稱。values就是要填充進去的內容
#region Set CustomProperty values
template.AddCustomProperty(new CustomProperty("Translatorno", dr["translator_no"].ToString()));
template.AddCustomProperty(new CustomProperty("TName", dr["name"].ToString()));
template.AddCustomProperty(new CustomProperty("TAge", dr["age"].ToString()));
template.AddCustomProperty(new CustomProperty("TSex", dr["sex"].ToString()));
template.AddCustomProperty(new CustomProperty("TNationality", dr["nationality"].ToString()));
#endregion
return template;
}
1.2 用代碼創建word模板,並同時用代碼為word模板創建自定義屬性。
private static DocX CreateInvoiceTemplate()
{
// 創建一個文檔
DocX document = DocX.Create(@"docs\InvoiceTemplate.docx");
//先創建了一個表格
Table layout_table = document.InsertTable(2, 2);
layout_table.Design = TableDesign.TableNormal;
layout_table.AutoFit = AutoFit.Window;
// 定義格式
Formatting dark_formatting = new Formatting();
dark_formatting.Bold = true;
dark_formatting.Size = 12;
dark_formatting.FontColor = Color.FromArgb(31, 73, 125);
// 定義格式
Formatting light_formatting = new Formatting();
light_formatting.Italic = true;
light_formatting.Size = 11;
light_formatting.FontColor = Color.FromArgb(79, 129, 189);
#region Company Name
//取表格的第一行第一列的第一段落
Paragraph upper_left_paragraph = layout_table.Rows[0].Cells[0].Paragraphs[0];
// 新建一個自定義屬性。其對應word中的內容是Translatorno為自定義屬性名稱,translatorno,為我們自己的word里面的內容
CustomProperty company_name = new CustomProperty("Translatorno", "translatorno");
// 加入自定義屬性
layout_table.Rows[0].Cells[0].Paragraphs[0].InsertDocProperty(company_name, f: dark_formatting);
return document;
}
2.資源
開源網址:http://docx.codeplex.com/
寫篇博客不容易,煩躁的心情都見鬼去吧。兄弟們,對你有幫助,不要吝嗇鼠標哦。
可以去下載示例代碼。
