好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

开源Word读写组件DocX,通过word模板,导出用户简历使用示例

开源Word读写组件DocX,通过word模板,导出用户简历使用示例

[原创]开源Word读写组件DocX,通过word模板,导出用户简历使用示例

 入门请看:

【原创翻译】开源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测试数据/

写篇博客不容易,烦躁的心情都见鬼去吧。兄弟们,对你有帮助,不要吝啬鼠标哦。

可以去下载示例代码。

 

 

分类:  C#,.net入门

作者: Leo_wl

    

出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于开源Word读写组件DocX,通过word模板,导出用户简历使用示例的详细内容...

  阅读:59次