精华内容
下载资源
问答
  •  // 根据保存的空行数量删除相应的行  for (int i = 0; i ["CJRY_NAME"]; i++)  builder.DeleteRow(0, endRow["CJRY_NAME"]--);  for (int i = 0; i ["JFZC_ZCNR"]; i++)  builder.DeleteRow(0, endRow["JFZC_...

        public partial class WordExport_KJYJJRHLTHTS : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {


                    string dname = Request["dname"];
                    string DWBH = Request["DWBH"];
                    string XHBH = Request["XHBH"];
                    string templatePath = HttpContext.Current.Server.MapPath(@"~/office/doc/模板.doc");
                    System.Data.DataTable dt = DbSqlHelper.GetDataSet("SELECT  * FROM KJYJJRHLTHTS WHERE XHBH='" + XHBH + "' and DWBH='" + DWBH + "' and MBBH='" + dname + "'").Tables[0];
                    List<Dictionary<string, object>> Datalist = DataTableToListDic(dt);
                    Document doc = new Document(templatePath);


                    DocumentBuilder builder = new DocumentBuilder(doc);
                    // 记录空行
                    Dictionary<string, int> emptyRow = new Dictionary<string, int>()
                {
                    {"CJRY_NAME",0},{"JFZC_ZCNR",0},{"XMJD_JFYS",0},{"ZMQYJ_NAME",0},{"ZMZJ_NAME",0},{"DWQK_CJDW",0}
                };
                    // 记录每个动态表格的最后一行在总表的位置(假设所有动态数据为20行)
                    Dictionary<string, int> endRow = new Dictionary<string, int>()
                {
                    {"CJRY_NAME",148},{"JFZC_ZCNR",124},{"XMJD_JFYS",102},{"ZMQYJ_NAME",75},{"ZMZJ_NAME",53},{"DWQK_CJDW",21}
                };
                    // 动态数据最大行数
                    const int MaxRow = 20;


                    foreach (var item in Datalist[0])
                    {


                        foreach (Bookmark mark in doc.Range.Bookmarks)
                        {
                            if (mark != null)
                            {
                                if (mark.Name == item.Key.ToString())
                                {
                                    mark.Text = Datalist[0][item.Key.ToString()].ToString();
                                    


                                    if(item.Value == null || String.IsNullOrEmpty(item.Value.ToString())){
                                    if (item.Key.Contains("CJRY_NAME"))
                                    {
                                        emptyRow["CJRY_NAME"]++;
                                    }
                                    if (item.Key.Contains("JFZC_ZCNR"))
                                    {
                                        emptyRow["JFZC_ZCNR"]++;
                                    }
                                    if (item.Key.Contains("XMJD_JFYS") )
                                    {
                                        emptyRow["XMJD_JFYS"]++;
                                    }
                                    if (item.Key.Contains("ZMQYJ_NAME"))
                                    {
                                        emptyRow["ZMQYJ_NAME"]++;
                                    }
                                    if (item.Key.Contains("ZMZJ_NAME"))
                                    {
                                        emptyRow["ZMZJ_NAME"]++;
                                    }
                                    if (item.Key.Contains("DWQK_CJDW"))
                                    {
                                        emptyRow["DWQK_CJDW"]++;
                                    }
                                    }
                                }
                            }
                        }
                    }
                    // 根据保存的空行数量删除相应的行
                    for (int i = 0; i < emptyRow["CJRY_NAME"]; i++)
                        builder.DeleteRow(0, endRow["CJRY_NAME"]--);


                    for (int i = 0; i < emptyRow["JFZC_ZCNR"]; i++)
                        builder.DeleteRow(0, endRow["JFZC_ZCNR"]--);


                    for (int i = 0; i < emptyRow["XMJD_JFYS"]; i++)
                        builder.DeleteRow(0, endRow["XMJD_JFYS"]--);


                    for (int i = 0; i < emptyRow["ZMQYJ_NAME"]; i++)
                        builder.DeleteRow(0, endRow["ZMQYJ_NAME"]--);


                    for (int i = 0; i < emptyRow["ZMZJ_NAME"]; i++)
                        builder.DeleteRow(0, endRow["ZMZJ_NAME"]--);


                    for (int i = 0; i < emptyRow["DWQK_CJDW"]; i++)
                        builder.DeleteRow(0, endRow["DWQK_CJDW"]--);


                    doc.Save("1.doc", SaveFormat.Doc, SaveType.OpenInWord, this.Response);
                }
            }
            /// <summary> 将 DataTable 转换为 List[Dictionary[string, object]] </summary>
            /// <param name="dt">DataTable</param>
            /// <returns>List[Dictionary[string, object]]</returns>
            public static List<Dictionary<string, object>> DataTableToListDic(System.Data.DataTable dt)
            {
                List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();
                if (dt == null || dt.Rows.Count < 0) return null;


                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    listDic.Add(new Dictionary<string, object>());
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        listDic[i].Add(dt.Columns[j].ToString(), dt.Rows[i][j]);
                    }
                }
                return listDic;
            }
        }

    展开全文
  • table合并单元格

    2021-07-02 20:34:34
    合并两行 删除多余单元格 结果

    在这里插入图片描述

    在这里插入图片描述
    合并两行
    在这里插入图片描述

    在这里插入图片描述
    删除多余单元格
    在这里插入图片描述

    结果

    在这里插入图片描述

    展开全文
  • jquery 删除合并单元格

    2016-11-17 23:24:55
    table删除tr有合并单元格,在点击删除时应删除当行tr,并改变td合并行的行数 new file table{ margin: 0px; padding: 0px; border: 1px

    table删除tr有合并单元格,在点击删除时应删除当行tr,并改变td合并行的行数




    new file

    table{
    margin: 0px;
    padding: 0px;
    border: 1px solid #ccc;
    width: 300px;
    height: 300px;
    border-collapse: collapse;
    }
    table td{
    border: 1px solid #ccc;
    text-align: center;
    line-height: 30px;
    }









































    0000 111 111 删除
    222 222 删除
    333 333 删除
    444 444 删除
    1111 111 111 删除
    444 444 删除
    444ee 444ee 删除

    </body>
    <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.9.1/jquery.js"></script>
    <script type="text/javascript">
        $(function(){
            table.init();
        });
        var table = (function(){
            var setTable = function(){
                $("tr .del").each(function(){
                    //给每一行的删除绑定点击事件
                    $(this).on("click",function(e){
                        //获取点击按钮所在行的class
                        var lins = $(this).parents("tr").attr("class");
                        //如果有class,说明点击的是合并行Td所在的tr
                        if (lins) {
                            //console.log(lins);
                            //获取合并行数
                            var row = $(this).parents("tr").children().eq(0).attr("rowspan");
                            //如果只有 一行,则代表没有合并,只有删除改行
                            if (row == 1) {
                                $(this).parents("tr").remove();
                            } else {
                                //代表改行td有合并多行,每点击一次删除一行,合并行数也减少一行
                                var rows = row-1;
                                //因为点击的是第一个tr,如果删除,则需要把合并行的td转移到下一行,获取之前合并行的td 里面的内容
                                var html = $(this).parents("tr").children().eq(0).html();
                                //获取删除行的下一行
                                var nextTr = $(this).parents("tr").next();
                                //获取删除行的下一行的第一个td
                                var firstTd = nextTr.children().eq(0);
                                //新加入的td,需要合并行
                                var td = "<td rowspan='"+rows+"'>"+html+"</td>";
                                //并将class转移到下一行的tr上
                                nextTr.attr("class",lins);
                                //将新增的td放在下一行的第一列
                                firstTd.before(td);
                                //执行删除操作
                                $(this).parents("tr").remove();
                            }
                        } else {
                            //如果点击的不是合并行td所在的tr上,找到点击删除按钮tr所在的行索引
                            var trIndex = $(this).parents("tr")[0].rowIndex;
                            //该table上所有的tr
                            var allTr = $(".table").find("tr");
                            //从下往上找,离删除行最近的有合并行td所在的tr
                            for (var i = allTr.length-1; i >=0;i--){
                                if (i < trIndex) {
                                    //获取class,如果存在class,则代表已找到离删除行最近的有合并行td的tr,执行删除,合并操作,并退出循环
                                    var linsClass =  $(allTr[i]).attr("class");
                                    if (linsClass) {
                                        var row = $(allTr[i]).children().eq(0).attr("rowspan");
                                        if (row == 1) {
                                            $(allTr[trIndex]).remove();
                                        } else {
                                            var rows = row-1;
                                            $(allTr[i]).children().eq(0).attr("rowspan",rows);
                                            $(allTr[trIndex]).remove();
                                        }
                                        break;
                                    }
                                }
                            }
                        }
                    });
                });
            };
            return {
                init : function(){
                    setTable();
                }
            }
        })();
    </script>
    

    展开全文
  • jupyter删除单元格

    2021-05-13 15:33:49
    方法:选中单元格,边沿呈蓝色,按两下dd

    方法:选中单元格,边沿呈蓝色,按两下dd

    展开全文
  • 多余行会有bug,有需要的话可以反复调用来实现 if delete_column[0] < merge_col.min_col: merge_col.shift(col_shift=-delete_column[1]) elif delete_column[0] <= merge_col.max_col: if...
  • 合并单元格 1.合并单元格的方式 跨行合并:rowspan=“合并单元格的个数”。 跨列合并:colspan=“合并单元格的个数”。 2.目标单元格 跨行:最上侧单元格为目标单元格,写合并代码。...删除多余单元格。 ...
  • Excel自定义单元格样式删除工具

    热门讨论 2013-04-18 11:27:26
    Excel表格边框丢失,Excel自定义单元格样式太多导致无法保存单元格格式,此工具执行后可以批量删除当前目录下的Excel文件里的多余自定义样式。
  • 一、合并单元格有两种方式 跨行合并:rowspan="合并单元格的个数" 跨列合并:colspan="合并单元格的个数" 二、合并单元格顺序 和学习汉字的书写顺序完全一致:先上 后下 先左 后右 ...3.删除多余单元格 ...
  • 合并单元格

    2019-10-01 18:09:14
    将多个内容合并的时候,就会有多余的东西,把它删除. 跨行合并:rowspan 跨列合并:colspan 语法: rowspan = "合并行数" colspan = "合并列数" 说明:<table> <thead> <tr> <th rowspan = "合并...
  • HTML 合并单元格

    2021-01-24 12:45:12
    合并单元格 特殊情况下。可以将多个单元格合并成为一个单元格 合并单元格方式 跨行、跨列合并 ...删除多余单元格 合并单元格代码 <!DOCTYPE html> <html lang="en"> <head> <met
  • html中表格单元格的合并从本质上,就是删除多余的单元格,将某一个单元的长度的大小变成合并之后的大小。...比如个人简历单元格的合并,就是多余单元格删除,然后将单元的长度变成七个合并后的长度大小一样。 ...
  • .textOverFlow { width:300px; overflow:hidden; text-overflow:ellipsis;/* (IE专用) */ white-space:nowrap; border:1px solid #ddd; }
  • EXCEL批量删除单元格样式

    千次阅读 2017-12-04 14:45:00
    Sub 批量删除单元格样式() EX: For i = 1 To ActiveWorkbook.Styles.Count On Error Resume Next ActiveWorkbook.Styles(i).Delete Next i If ActiveWorkbook.Styles.Count <> 1 Then GoTo EX End Sub ...
  • 不熟悉vba,不了解Excel复杂操作,如何一键清除样式,批量删除格式保留数值? 使用这个方法,可以一键清除样式,操作如下图所示: 工具地址:www.excelfb.com, 点击:删除格式(样式),保留值 是不是很简单...
  • 若依 在需要隐藏的表格字段上添加 :show-voerflow-tooltip="true" 即可
  • 在Swift开发中,我们有时需要动态的添加或删除列表的单元格。 比如我们做一个消息提醒页面,默认页面只显示两个单元格。当点击第二个单元格(时间标签)时,下面会再添加一个单元格放置日期选择控件(同时新增...
  • 在Swift开发中,我们有时需要动态的添加或删除列表的单元格。   比如我们做一个消息提醒页面,默认页面只显示两个单元格。当点击第二个单元格(时间标签)时,下面会再添加一个单元格放置日期选择控件(同时...
  • 合并单元格 两种方式:1)跨行合并;2)跨列合并; 目标单元格(需要合并的单元格,写合并...3)删除多余单元格。 如图1,一个3*3的表格: 将其合并单元格,如图2: 如图所示,将第一行中2,3单元格合并在一...
  • 1、合并单元格代码示例 表头列合并代码: 效果图 2、jqgrid表头合并和行合并,基于jquery脚本插件 下面的js是近期写的一个jqgrid表头与行合并脚本。jqgrid也真是,表头合并的功能都不提供,用起来好尴尬...
  • <table> <h2>合并单元格</h2> ...--1....--2.找到目标单元格,写上合并方式=合并的单元格数量,...删除多余单元格--> <tablewidth="500"height="249"border="1"cellspacing="0"align="cent...
  • 用C语言写的一个小工具,用来删除文件中的多余空格(行尾空格)、文件末尾无用的空行、以及使用4个空格替换tab键。 目前支持的文件包括.c .h .s .txt .sct,内有操作说明。
  • Markdown表格合并单元格

    万次阅读 多人点赞 2019-03-03 01:34:15
    Markdown表格合并单元格 Markdown表格语法介绍 基本语法: |属性1 |属性2 |属性3 | |----- |----- |----- | |value1|value1|value1| |value2|value2|value2| 实例 实现 | 属性名 | 含义 | 常用属性值 | |-----|----...
  • 首先来回顾一下table最基础的合并单元格方法(以下内容来源于...合并单元格,就是删除多余td。 推出一个合并删除td的公式:删除的个数=合并的个数-1 合并列用:colspan="列数" 合并行用:rowspan="行数" 1、基本表格
  • 做数据透视表的时候,经常有一个组里面出现几个分支都有数值的情况,老板要求把数据透视表贴成数值格式并且合并掉空白单元格。那么如果有很多列并且每一列都要这样做,是不是瞬间觉得不会再爱了→。→ 为了生动形象...
  • 如题,预计打算把黄色标示的行全部一齐删除。 如果数据比较大达到几十万行的话,循环寻找A列为空则比较低效。 若用SpecialCells函数把空白单元格全部找到而且选中,则不需要循环,速度较快。 Sub Test () dim blk, ...
  • 数据库存储里面的ID列(序号)一般是自增性质的,不停的增加、删除操作后,这个序号列就会乱,数字 不连续,而我们要显示到GUI里面的序号列肯定需要按正常顺序显示的,本文提供构造顺序序号列的方法; 操作列(比如...
  • js合并单元格

    2010-08-13 00:43:42
    数据是动态生成的。如: 姓名 性别 年龄 科目 ...要求用js把姓名、性别、年龄列相同的单元格合并。 因为结果集是查询得到的,所以要动态合并。 我已经实现了项目列相同单元格的合并, 但怎样将姓名、性别、年...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,891
精华内容 1,956
关键字:

删除多余单元格