精华内容
下载资源
问答
  • 表格嵌套和隐藏

    2019-09-28 11:58:39
    问题背景:一条访问控制策略包含条规则信息,将策略信息以列表形式显示,每行显示一条策略信息。要求鼠标点击策略信息行,显示或隐藏该策略包含的所有规则信息。 主要代码: $sql="select * from policyinfo ...

    问题背景:一条访问控制策略包含多条规则信息,将策略信息以列表形式显示,每行显示一条策略信息。要求鼠标点击策略信息行,显示或隐藏该策略包含的所有规则信息。

    主要代码:

    $sql="select * from policyinfo limit $fromPage $pageSize";

    $query=mysql_query($sql); //策略信息分页显示

    while($re=mysql_fetch_array($query)){

    ?>  //控制每行显示一条策略信息

    <tr οnclick="fade('<?php echo "childtable".$re[Id];?>');">

    <td><?php echo $re['PolicyVersion'];?> //输出策略信息

    </td>

    </tr>

    //表格嵌套,显示策略中规则信息

    <tr id="<?php echo "childtable".$re[0];?>" style="display:none">

    <td colspan="6">

    <table>

    <?php

    $sql1="select * from rprelation where PolicyId='$re[Id]'"; //关系表中与当前预览策略的规则信息

    $query1=mysql_query($sql1);

    while($row1=mysql_fetch_array($query1))

    { //循环显示多条规则信息

    $sql2="select * from rule where Id='$row1[RuleId]'";

    $query2=mysql_query($sql2);

    $row2=mysql_fetch_array($query2);

    //规则信息?>

    <tr>

    <td><?php echo $row2['AccessType']?>

    </td>

    </tr>

    <?php

    }

    ?>

    </table></td>

    </tr>

    <?php

    }

    ?>

     

    <script>//实现隐藏js脚本

    function fade(id){

    var oa = document.getElementById(id);

    if(oa.style.display == "none")

    oa.style.display = "";

    else

    oa.style.display = "none";

    }

    </script>

    注意点:表格的嵌套必须在<td></td>中,html元素的id必须唯一,id必须作为参数传给函数。

    转载于:https://www.cnblogs.com/bmdjing/p/3558033.html

    展开全文
  • 先说说为什么要嵌套table,常规情况下我们用一个table就能解决问题,拆分及合并单元格可以用到rowspancolspan,但是搞起来真的好麻烦啊!!!复杂的表格拆结构真的吐血。比如: 为了制作一个这种表格不得已大...

    你肯定会说table还要解决兼容问题,你搞笑啊~~
    是的,一开始我也会这样说,但那是在只有一个table状况下,咋折腾都没问题,直到有一天。。。
    先说说为什么要嵌套table,常规情况下我们用一个table就能解决问题,拆分及合并单元格可以用到rowspan和colspan,但是搞起来真的好麻烦啊!!!复杂的表格拆结构真的吐血。比如:完美的细线表格
    为了制作一个这种表格不得已大表格套小表格(或许有更方便的软件?)

    最初做完后:::
    失败的嵌套表格
    卧槽,出现重复描边,这可不是我们想要的结果。
    然后在网上查了下, 写了最初的表格样式:

    table {
        font-size:16px;
        border-collapse: collapse;
    }
    table td,table th {
        border-width: 1px;
        border-style: solid;
        border-color: #333;
        background-color: #ffffff;
        padding:12px 10px;
    }
    
    /*在子table表格外层的td写border样式名*/
    .border0{
        padding:0;
    }
    .border0 table{
        border-style:hidden;
        border-width:0;
    }

    本想大功告成,好开森,但ie的F12里切换ie版本发现。。。ie6/7/8还是那样!
    网上找了好久解决方案也没找到,肯能太冷门吧,最终,我想到让表格td右边与底边1px,左与上0px的IE hack

    table {
        *border-style: solid;
        *border-color: #333;
        *border-width: 1px 0 0 1px;
        font-size:16px;
        border-collapse: collapse;
    }
    table td,table th {
        border-width: 1px;
        *border-width: 0 1px 1px 0;
        border-style: solid;
        border-color: #333;
        background-color: #ffffff;
        padding:12px 10px;
        box-sizing: border-box;
    }
    
    /*在子table表格外层的td写border样式名*/
    .border0{
        padding:0;
        *border-width: 0;
    }
    .border0 table{
        margin-left: -1px;
        margin-left: 0\9;
        border-style:hidden;
        *border-style:solid;
        border-width:0;
    }

    此方法确实决绝了ie6/7的问题(稍有差异),但发现ie8这个老大难不行啊,没有针对ie8的hack,头大,最终不得已在页面头部做了降级处理(未测试ie8浏览器,F12里切ie8无法看结果)

    <!--[if IE 8]> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <![endif]-->

    好了,把最终的完整页面代码贴出来,有更完美的方案时望指正(会不会有人说我用某某软件画多复杂的表格都OK,折腾啥?- -!):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!--[if IE 8]> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <![endif]-->
        <title>无标题文档</title>
        <style type="text/css">
    
            html{height:100%;font-size : 13px;}
            body{
                font-family:"宋体"; line-height:24px; color: #333; background:#FFF;
                width:100%;height:100%; margin:0; padding:0;
            }
            th,td{margin:0;padding:0;}
    
    
            table {
                *border-style: solid;
                *border-color: #333;
                *border-width: 1px 0 0 1px;
                font-size:16px;
                border-collapse: collapse;
            }
            table td,table th {
                border-width: 1px;
                *border-width: 0 1px 1px 0;
                border-style: solid;
                border-color: #333;
                background-color: #ffffff;
                padding:12px 10px;
                box-sizing: border-box;
                text-align:justify;text-justify:inter-ideograph;
            }
            table th {
                background-color: #dedede;text-align: center;
            }
            .border0{
                padding:0;
                *border-width: 0;
            }
            .border0 table{
                margin-left: -1px;
                margin-left: 0\9;
                border-style:hidden;
                *border-style:solid;
                border-width:0;
            }
    
            .jusall{text-align-last:justify;}
            .textcenter{text-align:center}
            .textright{text-align:right}
    
        </style>
    </head>
    
    <body>
        <h1 style="text-align:center;padding:60px 0 10px;">道路运输驾驶员诚信考核表</h1>
        <table width="960" align="center">
            <tr>
                <td colspan="2" class="textcenter">以下由驾驶员填写</td>
            </tr>
            <tr>
                <td colspan="2" class="border0">
                    <table width="100%">
                        <tr>
                            <td width="150" class="textcenter">姓名</td>
                            <td class="border0">
                                <table width="100%">
                                    <tr>
                                        <td width="300">&nbsp;</td>
                                        <td width="100">性别</td>
                                        <td>男 □&nbsp;&nbsp;&nbsp;女 □</td>
                                    </tr>
                                </table>
                            </td>
                            <td width="120" rowspan="4" class="textcenter">照片</td>
                        </tr>
                        <tr>
                            <td class="textcenter">身份证号</td>
                            <td class="border0">
                                <table width="100%">
                                    <tr>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                        <td>&nbsp;</td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td class="textcenter">住址</td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td class="textcenter">联系电话</td>
                            <td>&nbsp;</td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td width="150" class="textcenter">从业资格证号</td>
                <td class="border0">
                    <table width="100%">
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td class="textcenter">服务单位</td>
                <td>道路旅客运输 □&nbsp;&nbsp;&nbsp;道路货物运输 □&nbsp;&nbsp;&nbsp;道路危险货物运输 □&nbsp;&nbsp;&nbsp;</td>
            </tr>
        </table>
    </body>
    </html>
    展开全文
  • 相信很朋友在使用antd的嵌套表格的时候都碰到了这个问题,本人也深有体会,简直愁的不行,不过在经过百度的一番争斗之后,终于是找到的问题的原因所在。首先,antd的表格数据源dataSource接收的是一个数组,如果...

    相信很多朋友在使用antd的嵌套表格的时候都碰到了这个问题,本人也深有体会,简直愁的不行,不过在经过和百度的一番争斗之后,终于是找到的问题的原因所在。

    首先,antd的表格数据源dataSource接收的是一个数组,如果我们子表格每次接收的数组都是一个单独的新的数组,那么就会造成所有的子表格都是一样的,因为每次展开只渲染了这一个数组

    那么我们就要把每次请求到的子表格数据给存起来了,这里我用的是对象键值对的方式去存储的

    因为没有后台数据,所以我这边就先模拟了一些数据

    const ChildrenDataOne =[

    { name:'XiaoHua1', age: 15, address: 'ZhengZhou', key: 0},

    { name:'XiaoHua2', age: 15, address: 'ZhengZhou', key: 1},

    { name:'XiaoHua3', age: 15, address: 'ZhengZhou', key: 2},

    ]const ChildrenDataTwo =[

    { name:'XiaoBai1', age: 15, address: 'ZhengZhou', key: 0},

    { name:'XiaoBai2', age: 15, address: 'ZhengZhou', key: 1},

    { name:'XiaoBai3', age: 15, address: 'ZhengZhou', key: 2},

    ]const ChildrenDataThree =[

    { name:'XiaoHei1', age: 15, address: 'ZhengZhou', key: 0},

    { name:'XiaoHei2', age: 15, address: 'ZhengZhou', key: 1},

    { name:'XiaoHei3', age: 15, address: 'ZhengZhou', key: 2},

    ]const ChildrenDataFour =[

    { name:'XiaoLan1', age: 15, address: 'ZhengZhou', key: 0},

    { name:'XiaoLan2', age: 15, address: 'ZhengZhou', key: 1},

    { name:'XiaoLan3', age: 15, address: 'ZhengZhou', key: 2},

    ]

    这个方法每次点击展开按钮时会把相对应的数据存入到 data 这个对象中,大概效果是 { 1: [ 数据 ], 3: [  数据 ], 2: [  数据 ] }

    1 const openClick = (status, item) =>{ // status(子表格展开的状态) item(当前项)2 if (!status) return

    3    // 判断 如果子表格收起时 直接退出当前函数,不进行请求存储

    4 if (item.Cid === 1) {5 setData({ ...data, [item.Cid]: ChildrenDataOne })6 }7 if (item.Cid === 2) {8 setData({ ...data, [item.Cid]: ChildrenDataTwo })9 }10 if (item.Cid === 3) {11 setData({ ...data, [item.Cid]: ChildrenDataThree })12 }13 if (item.Cid === 4) {14 setData({ ...data, [item.Cid]: ChildrenDataFour })15 }16 }

    好,现在我们有了所有展开的数据,但是因为存储到对象里面,所以我们还需要一个 唯一值(id)每次取匹配我们存储到对象里面的数据

    这个方法是渲染子表格用的,它第一个参数是所有展开的对应的数据,我们就可以从这些数据中取到唯一值(id)

    可能有小伙伴疑问了为什么要从这里取,因为它第一个参数输出的是(所有展开的数据),也就是说我们可以拿到所有已展开的id,然后将对应的数据给放进去

    我这边也是踩过坑的,我每次展开的时候存了一个id,然后就导致了我虽然有每个展开的数据,但是没有每个展开的id,就造成了都是一样的数据

    const expandedRowRender = (item) =>{return(

    columns={ChildrenColumns}

    pagination={false}

    dataSource={data[item.Cid]}/>)

    }

    这里是全部的代码,这边是没有使用 redux或者dva,仅仅是使用state在页面上模拟了一下,不过思路是正确的,小伙伴们把思路看懂了,然后搬到redux/dva里面就可以了

    import React, { useState } from 'react'import { Table }from 'antd'import {

    ParentData,

    ParentColumns,

    ChildrenColumns,

    ChildrenDataOne,

    ChildrenDataTwo,

    ChildrenDataThree,

    ChildrenDataFour,

    }from './Sourse'import'./styles.less'exportdefaultfunction App() {const [data, setData] = useState(null)const expandedRowRender = (item) =>{return(

    // 子表格

    columns={ChildrenColumns}

    pagination={false}

    dataSource={data[item.Cid]}/>)

    }const openClick = (status, item) =>{if (!status) return

    if (item.Cid === 1) {

    setData({ ...data, [item.Cid]: ChildrenDataOne })

    }if (item.Cid === 2) {

    setData({ ...data, [item.Cid]: ChildrenDataTwo })

    }if (item.Cid === 3) {

    setData({ ...data, [item.Cid]: ChildrenDataThree })

    }if (item.Cid === 4) {

    setData({ ...data, [item.Cid]: ChildrenDataFour })

    }

    }return(

    // 父表格

    className="components-table-demo-nested"columns={ParentColumns}

    expandable={{ expandedRowRender }} // 渲染子表格的回调

    dataSource={ParentData}

    onExpand={openClick} // 展开时触发的回调/>

    )

    }

    展开全文
  • 根据后端返回的数据 ( res 是一个数组,它的元素是一个对象,对象里面的 ext 属性是一个对象,它又包含了, default 、 free pay 三个属性,且这三个都是数组格式。):   渲染出一个这样子的 表格 : res ...
  • 主要是懒得再写一次了,所以就在关键点添加了注释,只能凑合着看了 ...还有一点就是中间有数据库的操作,循环创建行,这个应该没有什么难度,应该都能看懂!!! private void AddWord() { try {...

    主要是懒得再写一次了,所以就在关键点添加了注释,只能凑合着看了

    有个地方困惑我了一天,所以发到博客做个记录,避免以后忘了

    引用的dll我就不说了,大家应该都知道引用那些!!!

    还有一点就是中间有数据库的操作,和循环创建行,这个应该没有什么难度,应该都能看懂!!!

    private void AddWord()
            {
    
                try
                {
    
    
                    TreeNode node = this.tree_main.SelectedNode;//获取选择节点的值
    
                    string str = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);          //获取桌面路径  没有用上
                    string root = "";                                                                   //获取条件表名称
    
                    root = node.Name;
                    string sql = "SELECT TableName,FieldName,FieldTitle,DataType,DataLen FROM dbo.Table_Stru WHERE TableName='" + root + "'";
                    this.ds = DM.ReturnTableEx(sql);                                                     //执行sql  获取记录 存放在dataSet里面
    
                    
    
                    //需要循环创建word行
                    string strtitle = "方法生成:";   
                    object oMissing = System.Reflection.Missing.Value;
                    object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
                    //创建文档
                    WordAPP._Application oWord = new Microsoft.Office.Interop.Word.Application();
                    object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;                         //光标移到未尾
                    WordAPP._Document oDoc;
                    oWord.Visible = false;
                    oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
                    //设置页眉
                    oWord.ActiveWindow.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdOutlineView;
                    oWord.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;
                    oWord.ActiveWindow.ActivePane.Selection.InsertAfter("文档");
                    oWord.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐
                    oWord.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;                     //跳出页眉设置
                    //库名
                    WordAPP.Paragraph oPara1;
                    oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
                    oPara1.Range.Text = strtitle;
                    oPara1.Range.Font.Bold = 1;
                    oPara1.Range.Font.Name = "宋体";
                    oPara1.Range.Font.Size = 12;
                    oPara1.Range.ParagraphFormat.Alignment = WordAPP.WdParagraphAlignment.wdAlignParagraphCenter;
                    oPara1.Format.SpaceAfter = 5;    //24 pt spacing after paragraph.
                    oPara1.Range.InsertParagraphAfter();
    
    
                    string funcName = "AddInfoData";
    
                    if (ds != null || ds.Tables[0].Rows.Count > 0) //判断读取的是否为空
                    {
                        //表名
                        WordAPP.Paragraph oPara2;
                        object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
                        oPara2 = oDoc.Content.Paragraphs.Add(ref oRng);
    
                        int staIndex = node.Text.IndexOf("-");
                        oPara2.Range.Text = "添加、修改" + node.Text.Substring(staIndex, node.Text.Length - staIndex) + "(AddInfoData)";//标题
                        oPara2.Range.Font.Bold = 1;
                        oPara2.Range.Font.Name = "宋体";
                        oPara2.Range.Font.Size = 10;
                        oPara2.Range.ParagraphFormat.Alignment = WordAPP.WdParagraphAlignment.wdAlignParagraphLeft;
                        oPara2.Format.SpaceBefore = 15;
                        oPara2.Format.SpaceAfter = 1;
                        oPara2.Range.InsertParagraphAfter();
    
    
                        //描述信息
                        WordAPP.Paragraph oPara3;
                        oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
                        oPara3 = oDoc.Content.Paragraphs.Add(ref oRng);
                        oPara3.Range.Text = "";
                        oPara3.Range.Font.Bold = 0;
                        oPara3.Range.Font.Name = "宋体";
                        oPara3.Range.Font.Size = 9;
                        oPara3.Range.ParagraphFormat.Alignment = WordAPP.WdParagraphAlignment.wdAlignParagraphCenter;
                        oPara3.Format.SpaceBefore = 1;
                        oPara3.Format.SpaceAfter = 1;
                        oPara3.Range.InsertParagraphAfter();
    
    
                        //插入表格          
                        WordAPP.Table oTable;
                        WordAPP.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
                        oTable = oDoc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);//指定行数和列数
                        oTable.Range.Font.Name = "宋体";
                        oTable.Range.Font.Size = 9;
                        oTable.Borders.Enable = 1;
                        oTable.Rows.Height = 10;
                        oTable.AllowAutoFit = true;
    
    
                        oTable.Columns[1].Width = 80;
                        //oTable.Columns[2].Width=80;
                        oTable.Columns[2].Width = 400;
    
                        //填充表格内容
                        oTable.Cell(1, 1).Range.Text = "CmdKind"; //在表格的第一行第一列填入内容。                
                        oTable.Cell(1, 2).Range.Text = funcName;  //在表格的第一行第二列填入内容。      
    
                        oTable.Cell(2, 1).Range.Text = "函数功能";
                        oTable.Cell(2, 2).Range.Text = "添加或更改Info类型单据数据。";
    
                        oTable.Cell(3, 1).Range.Text = "inParam参数说明";
                        oTable.Cell(3, 2).Range.Text = "1.参数表\"Param\"";
                        oTable.Cell(3, 2).Range.Font.Bold = 1;
                        string para = "";
    
    
                        oTable.Cell(3, 2).Range.Select(); //获取焦点
                        unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;//移到未尾
                        oDoc.ActiveWindow.Selection.EndKey(ref unit, ref oMissing);
    
    
                        WordAPP.Table paraTable;  //声明一个表格
                        WordAPP.Range rangePara = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
                        paraTable = oDoc.Tables.Add(oDoc.ActiveWindow.Selection.Range, 7, 6, ref oMissing, ref oMissing); //创建表格在光标的位置
                        paraTable.Range.Font.Name = "宋体";
                        paraTable.Range.Font.Size = 9;
                        paraTable.Borders.Enable = 1;
                        paraTable.Rows.Height = 10;
                        paraTable.AllowAutoFit = true;
    
    
                        //设置表格的宽度
                        paraTable.Columns[2].Width = 100;
                        paraTable.Columns[3].Width = 100;
                        paraTable.Columns[5].Width = 40;
                        paraTable.Columns[6].Width = 40;
                        paraTable.Cell(1, 1).Range.Text = "字段名称";
                        paraTable.Cell(1, 2).Range.Text = "字段说明";
                        paraTable.Cell(1, 3).Range.Text = "附加说明";
                        paraTable.Cell(1, 4).Range.Text = "字段类型";
                        paraTable.Cell(1, 5).Range.Text = "主键";
                        paraTable.Cell(1, 6).Range.Text = "非空";
    
                        paraTable.Cell(2, 1).Range.Text = "Module";
                        paraTable.Cell(2, 2).Range.Text = "数据库标识";
                        paraTable.Cell(2, 3).Range.Text = "";
                        paraTable.Cell(2, 4).Range.Text = "varchar(50)";
                        paraTable.Cell(2, 5).Range.Text = "0";
                        paraTable.Cell(2, 6).Range.Text = "1";
    
                        paraTable.Cell(3, 1).Range.Text = "TableName";
                        paraTable.Cell(3, 2).Range.Text = "数据表名称";
                        paraTable.Cell(3, 3).Range.Text = ds.Tables[0].Rows[0]["TableName"].ToString();
                        paraTable.Cell(3, 4).Range.Text = "varchar(50)";
                        paraTable.Cell(3, 5).Range.Text = "0";
                        paraTable.Cell(3, 6).Range.Text = "1";
                        //设置指定表格的背景颜色
                        paraTable.Cell(3, 3).Range.Shading.BackgroundPatternColor = Microsoft.Office.Interop.Word.WdColor.wdColorLightYellow;
    
                        paraTable.Cell(4, 1).Range.Text = "PID";
                        paraTable.Cell(4, 2).Range.Text = "树形节点编号值";
                        paraTable.Cell(4, 3).Range.Text = "Info类表传递树节点的编号,无树形结构的传递空字符串。";
                        paraTable.Cell(4, 4).Range.Text = "varchar(50)";
                        paraTable.Cell(4, 5).Range.Text = "0";
                        paraTable.Cell(4, 6).Range.Text = "0";
    
                        paraTable.Cell(5, 1).Range.Text = "UID";
                        paraTable.Cell(5, 2).Range.Text = "当前用户编号";
                        paraTable.Cell(5, 3).Range.Text = "";
                        paraTable.Cell(5, 4).Range.Text = "";
                        paraTable.Cell(5, 5).Range.Text = "0";
                        paraTable.Cell(5, 6).Range.Text = "1";
    
                        paraTable.Cell(6, 1).Range.Text = "TreeSetID";
                        paraTable.Cell(6, 2).Range.Text = "树结构配置编号";
                        paraTable.Cell(6, 3).Range.Text = "";
                        paraTable.Cell(6, 4).Range.Text = "varchar(50)";
                        paraTable.Cell(6, 5).Range.Text = "0";
                        paraTable.Cell(6, 6).Range.Text = "1";
    
    
                        oTable.Cell(3, 2).Range.Select(); //获取指定表格的焦点
                        unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;//移到未尾
                        oDoc.ActiveWindow.Selection.EndKey(ref unit, ref oMissing);
                        oDoc.ActiveWindow.Selection.InsertAfter("2.参数表\"Param2\"");//在指定的光标位置添加标题
                        oWord.ActiveWindow.Selection.Font.Bold = 1;
    
                        oTable.Cell(3, 2).Range.Select(); //获取焦点
                        unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;//移到未尾
                        oDoc.ActiveWindow.Selection.EndKey(ref unit, ref oMissing);
    
    
                        //在一个表格里面嵌套了两个表格
                        WordAPP.Table paraTable2;
                        WordAPP.Range rangePara1 = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
                        paraTable2 = oDoc.Tables.Add(oDoc.ActiveWindow.Selection.Range, 3, 6, ref oMissing, ref oMissing); //创建表格在光标的位置
                        paraTable2.Range.Font.Name = "宋体";
                        paraTable2.Range.Font.Size = 9;
                        paraTable2.Borders.Enable = 1;
                        paraTable2.Rows.Height = 10;
                        paraTable2.AllowAutoFit = true;
    
                        paraTable2.Columns[2].Width = 100;
                        paraTable2.Columns[3].Width = 100;
                        paraTable2.Columns[5].Width = 40;
                        paraTable2.Columns[6].Width = 40;
                        paraTable2.Cell(1, 1).Range.Text = "字段名称";
                        paraTable2.Cell(1, 2).Range.Text = "字段说明";
                        paraTable2.Cell(1, 3).Range.Text = "附加说明";
                        paraTable2.Cell(1, 4).Range.Text = "字段类型";
                        paraTable2.Cell(1, 5).Range.Text = "主键";
                        paraTable2.Cell(1, 6).Range.Text = "非空";
    
                        paraTable2.Cell(2, 1).Range.Text = "_op";
                        paraTable2.Cell(2, 2).Range.Text = "操作类型";
                        paraTable2.Cell(2, 3).Range.Text = "0:添加 1:更改";
                        paraTable2.Cell(2, 4).Range.Text = "INT";
                        paraTable2.Cell(2, 5).Range.Text = "0";
                        paraTable2.Cell(2, 6).Range.Text = "1";
    
                        paraTable2.Cell(3, 1).Range.Text = "ROOT";
                        paraTable2.Cell(3, 2).Range.Text = "父节点编号";
                        paraTable2.Cell(3, 3).Range.Text = "";
                        paraTable2.Cell(3, 4).Range.Text = "char(32)";
                        paraTable2.Cell(3, 5).Range.Text = "0";
                        paraTable2.Cell(3, 6).Range.Text = "0";
    
    
                        //循环添加表格
                        int a = 4;
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            //SELECT TableName,FieldName,FieldTitle,DataType,DataLen FROM dbo.Table_Stru
                            paraTable2.Cell(a, 1).Range.Text = ds.Tables[0].Rows[i]["FieldName"].ToString();
                            paraTable2.Cell(a, 2).Range.Text = ds.Tables[0].Rows[i]["FieldTitle"].ToString();
                            paraTable2.Cell(a, 3).Range.Text = "";
                            paraTable2.Cell(a, 4).Range.Text = ds.Tables[0].Rows[i]["DataType"].ToString() == "Integer" ? "INT" : "VARCHAR(" + ds.Tables[0].Rows[i]["DataLen"].ToString() + ")";
                            paraTable2.Cell(a, 5).Range.Text = "0";
                            paraTable2.Cell(a, 6).Range.Text = "0";
                            //注意嵌套表时只能一行一行的插入
                            paraTable2.Rows.Add(ref oMissing);//添加一行
                            a++;
                        }
    
    
                        oTable.Cell(4, 1).Range.Text = "rtnData参数数据";
                        oTable.Cell(4, 2).Range.Text = "null";
                        
    
                        paraTable.Rows.First.Shading.Texture = WordAPP.WdTextureIndex.wdTexture25Percent;//设置阴影
                        paraTable.Rows.First.Range.Font.Bold = 1;
    
                        oTable.Cell(5, 1).Range.Text = "备注";
                        oTable.Cell(5, 2).Range.Text = "";
    
                        oWord.Visible = true;  //打开生成的word   
                        oDoc.Activate();
                    }
    
                }
                catch (Exception )
                {
    
                   //抛出异常
                    return;
    
                }
    
    
            }

    这个没有保存在本地,只是把编辑的word打开了

    展开全文
  • vue+element表格实现多层数据的嵌套

    千次阅读 2020-06-23 11:08:47
    嵌套多了一层,直接上图,后台返回的数据结构 data下面是店铺的名字id,orderItemList是店铺下面的商品,店铺要显示,商品更要显示,(难受) 这nm嵌套两层,表格拿不出来啊,于是各种想思路,什么里边再套...
  • CSS控制表格嵌套

    2014-10-15 15:54:00
    网页设计应用中,当我们不能完全放弃表格的使用时,为了达到预期的效果,不免要用到表格嵌套(特别是多层嵌套)方式来进行布局。可能很同仁都遇到过这样的问题,为了达到显示效果要为每一个(每一层)的表格写不同...
  • 根据后端返回的数据 (res 是一个数组,它的元素是一个对象,对象里面的ext属性是一个对象,它又包含了,default、freepay三个属性,且这三个都是数组格式。): 渲染出一个这样子的 表格 : res数据: res的...
  • jquery 表格嵌套表格 厌倦了旧的无聊的html表默认外观? jQuery Table提供了与普通html表不同的样式外观,并添加了更有用的功能,例如列排序,显示计数等。 它还提供了普通html表无法提供的独特设计结构。 ...
  • 前文ExtJS4.2 Grid嵌套实例中讲解了如何在表格Grid中嵌套Grid,即外部Grid中每行分别展现为不同的内部Grid,比如常见的费用报销业务,费用类别有往返车费住宿费,其中往返车费需要填写往返类型、交通工具、费用...
  • SpringBoot_Freemarker生成Word_表格+两层嵌套循环; 步骤说明: 1.用Microsoft Office Word打开word原件;将文档中需要动态生成的内容,替换为属性名 ${name} 2.另存为,选择保存类型Word 2003 XML 文档(*....
  • 由于项目要用到layui的数据表格,但layui的数据表格的接口返回数据所有字段都只能最外层,虽然支持自定义数据,但也只能在最外层,而我们项目totaldata在第二层,layui数据表格要求数据格式不匹配,为了保证后台json...
  • 有时候我们需要一次添加条数据,这个时候我们就可以使用表格嵌套表单、输入框选择框等等的方式,添加保存修改数据。 直接展示代码 <el-form ref="form" :model="form.item"> <el-table :data="data...
  • layui的数据表格接口只能获取到data属性的最外层数据,我们项目中返回的JSON数据branchInfocustomerInfo都在第二层,这时就layui要求的数据格式发生了冲突,但为了不修改后台json的数据格式,解决方案: ...
  • 我写的打印控件的主要绘制算法 包括任意嵌套表格和多页显示 using System;using System.Drawing;using GwmPrinter.Object; namespace GwmPrinter{/// <summary>/// 定义了绘制报表各部分的方法...
  • layui的数据表格接口只能获取到data属性的最外层数据,我们项目中返回的JSON数据branchInfocustomerInfo都在第二层,这时就layui要求的数据格式发生了冲突,但为了不修改后台json的数据格式,我找到以下解决方案...
  • 查阅资料,花几天时间整理的,支持新增行、单行编辑保存、展开、分页国际化;子表格增加、编辑、删除、保存。解决个问题(包含组件,不包含store)
  • <div><p>现在采用的el-table 嵌套selectinput框做可以编辑表格,当一次性加载条时,因节点过多,页面会很卡,采用pl-table会有这种问题吗</p><p>该提问来源于开源项目:...
  • 最近接到了不少WPS的线上线下培训的需求,为了准备课程安装了最新版本的WPS Office 2019版。上次用WPS还是用的2016的版本,有很微软Office中有的功能,在WPS中都没有,让我用的很不习惯。这次安装了最新的2019...
  • 基本嵌套表格实验室 目标 使用有关主对象a的数据构造一个嵌套的params哈希,并具有许多关联。 正确输入名称表单以创建一个嵌套的params哈希,该哈希属于具有许多关联数据。 为主要模型定义一个常规的关联编写...
  • 表格嵌套使用表单验证表格是el-table自动获取的后台数据,每行都有el-input的验证,这样一个rules的规则就不能匹配到每一行,所以要是用动态的proprules规则ref="contionsTable":data="list.activityGifts...
  • 1.表单嵌套表格的验证:如图,表单被分为了一个可以动态增减的表格和普通的表单两部分,且表格是遍历出来的,内容是必选项,这样验证项目必须要直接写在遍历的地方,表格的增删就不说了直接push和splice就好,废话不...
  • 一共二百页的word手动添加这些清单是非常恐怖的工作量,笔者想到了编程。尝试试过word自带的VBA,觉得过于笨拙(其实是笔者水平不足),故放弃。也试过python用来读取word的一个库docx,代码如下。from docx import ...
  • 因为最终我决定还是把这两个表格分开来展示编辑。但,可能在其它地方可以用到呢?一,Django数据库Model二,DRF序列化文件from rest_framework import serializersfrom MetisModels.models import ViewSetfrom ...
  • 那么很像我一样的初学者在嵌套使用ul/li列表的时候会发现子元素父元素对不齐,如下图: 然后跟着书上写,不知道写了什么样式,它就突然对齐了,事后也没有细细研究,就沉浸在了成功的喜悦当中。以至于后来再...
  • 1.el-tableel-form嵌套使用表单校验 1.表格嵌套表单+input 2.el-tableel-form嵌套使用表单校验 2-1.表单的多层嵌套 2-2.动态表单---点击按钮增删一排输入框 2-3.表格嵌套使用表单验证
  • vue+ElementUI 表单嵌套表格逐行校验(新增、编辑)的完美解决方案一、成果二、要点解决思路三、源码 一、成果 在线地址 gitHub地址 如果帮到你,请点个赞^_^ 如图,ElementUI表单里嵌套了表格,表格内每行能进行...
  • 大家肯定会说 list嵌套不就行了,话不说,简单的list嵌套行不通。 正经的来了:说一下freemarker生成doc的步骤,第一先写doc模板,第二生成xml文件,第三如果有list的话,加上你要循环的list,详细步骤如下: 1...
  • 由于历史原因,在之前实现树表格时,我们有点偷懒,本来应该是层级嵌套的树结构,被我们硬生生的拉平了,请看: 可以看到,basic目录的子节点basic是在同一级别的,因为此目录尚未展开,所以这些子节点被标识...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 388
精华内容 155
关键字:

多表格和嵌套表格