使用DocX开源组件,实现动态数据的填充。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用DocX开源组件,实现动态数据的填充。相关的知识,希望对你有一定的参考价值。

1、先解释一下,什么叫做动态数据,动态数据指的是,一条数据的格式固定,但数据的条数不固定。

2、应用环境,在一个表格当中如果,现在表格有三行n列,如果你需要在表格第一行后添加同等规格的一行或n行,应该怎么去做?

3、根据上面的应用环境,不难发现,要完成这项工作的5个过程,1、找到位置。2、获取模板行。3、将模板行添加到当前行的下一行。4、向被添加的行写值。或许会有一个循环过程5、删除模板行。

4、话不多说,上代码。

注意:要使用这个片段,先添加对 DocX组件的引用。

DocX项目:http://docx.codeplex.com/releases/view/80870

//控制要插入的行数
                for (int i = 0; i < 5; i++)
                {
                    //这里测试成功

                    //获取到模板行的对象(一般是一个空行,只有架子没有数据的)
                    Row insertRow = docx.Tables[0].Rows[26];
                    //将获取到的这一个模板行,添加到当前行的下一行(下一个节点)
                    //我这里要插入到第27行及以后,我的模板行是第27行,i的作用是控制被操作的行
                    docx.Tables[0].Rows[26+i].Xml.AddAfterSelf(insertRow.Xml);                    
                    //控制要插入那些列
                    for (int j = 2; j < 9; j++)
                    {
                        //设置要插入的值
                        string value = (i + j).ToString();
                        //将值添加到该单元格
                        docx.Tables[0].Rows[26 + i + 1].Cells[j].Paragraphs[0].Append(value);
                    }
                     //Paragraph.Xml.ElementsBeforeSelf();
                }
                //删除模板行,要不然会有一个空行
                docx.Tables[0].RemoveRow(26);

  

以上是关于使用DocX开源组件,实现动态数据的填充。的主要内容,如果未能解决你的问题,请参考以下文章

DocX开源WORD操作组件的学习系列三

DocX开源WORD操作组件的学习系列二

从 Relay 中的动态组件获取片段

如何在片段中填充列表视图?

Javapoi-tl实现导出Word模板并动态渲染数据

利用微搭实现下拉框动态填充值得问题