精华内容
下载资源
问答
  • 在工作经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要根据a列的值,合并b、c列的对应单元格pandas的to_excel方法只能对索引进行合并,而xlsxwriter,虽然提供有merge_...

    在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要根据a列的值,合并b、c列的对应单元格

    0022041234-0.png

    pandas中的to_excel方法只能对索引进行合并,而xlsxwriter中,虽然提供有merge_range方法,但是这只是一个和基础的方法,每次都需要编写繁琐的测试才能最终调好,而且不能很好的重用。所以想自己写一个方法,结合dataframe和merge_range。大概思路是:

    1、定义一个my_dataframe类,继承dataframe类,这样能很好的利用pandas的很多特性,而不用自己重新组织数据结构。

    2、定义一个my_mergewr_excel方法,参数分别为:输出excel的路径、用于判断是否需要合并的key_cols列表、用于指明哪些列上的单元格需要被合并的列表

    3、将my_dataframe封装为一个my_module模块,以备重用。

    合并的算法如下:

    1、根据给定参数的【关键列】,进行分组计数和排序,添加cn和rn两个辅助列

    2、判断cn大于1的,该分组需要合并,否则该分组(行)无需合并(cn=1说明这个分组数据行是唯一的,无需合并)

    3、对应需要合并的分组,判断当前列是不是在给定参数【合并列】中,是则用合并写excel单元格,否则就是普通的写excel单元格。

    4、在需要合并的列中,如果对于的rn=1则调用merge_range,一次性写想下写cn个单元格,如果rn>1则跳过该单元格,因为在rn=1的时候,已经合并写了该单元格,若再重复调用erge_range,打开excel文档时会报错。

    用图解释如下:

    00220462D-1.png

    具体代码如下:

    ?

    调用代码:

    ?

    效果如下:

    002204G62-2.jpg

    也可以设置合并a、b列:

    ?

    效果如下:

    0022045L6-3.jpg

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

    原文链接:https://blog.csdn.net/cakecc2008/article/details/59203980

    展开全文
  • 前言在HTML代码里面,如果我们要合并单元格,就需要用到两个属性,一个是合并行单元格,还有一个就是合并列单元格,分别是 rowspan 以及 colspan 这两个属性。案例表格我以下面这个表格为本文的演示表格,教程以这个...

    前言

    在HTML代码里面,如果我们要合并单元格,就需要用到两个属性,

    一个是合并行单元格,还有一个就是合并列单元格,分别是 rowspan 以及 colspan  这两个属性。

    案例表格

    我以下面这个表格为本文的演示表格,教程以这个表格以及源代码为案例进行讲解。

    下面这个是本文将使用到的案例表格

    古诗

    古诗

    古诗

    古诗

    古诗

    清明时节雨

    纷纷路上行

    人欲断魂

    古诗

    野火烧不尽

    春风吹又生

    远芳侵古道

    此为表格的源代码,关于HTML制作表格的教程本站之前有发布过文章,各位可以去翻一下。

    古诗古诗古诗古诗
    古诗清明时节雨纷纷路上行人欲断魂

    tr>

    古诗野火烧不尽春风吹又生远芳侵古道

    表格合并行单元格

    在表格里面,通常会用很多相同的内容出现,然而我们可以把这些重复的内容合并成为一个单元格,这样可以省很多事,在办公软件里面,合并单元格只需要鼠标操作几下就行了,但是在html里面却要依靠属性来完成这个操作。

    合并行单元格之后的效果:

    古诗

    古诗

    古诗

    古诗

    清明时节雨

    纷纷路上行

    人欲断魂

    野火烧不尽

    春风吹又生

    远芳侵古道

    合并行单元格的源代码:.

    古诗古诗古诗古诗
    清明时节雨纷纷路上行人欲断魂
    野火烧不尽春风吹又生远芳侵古道

    表格合并列单元格

    合并单元列的方法和合并行的方法是一样的,只不过使用的却是 colspan 这个属性,演示效果和源代码如下

    表格合并列单元格演示效果:

    古诗

    古诗

    清明时节雨

    纷纷路上行

    人欲断魂

    古诗

    野火烧不尽

    春风吹又生

    远芳侵古道

    表格合并列单元格的源代码:

    古诗
    古诗清明时节雨纷纷路上行人欲断魂
    古诗野火烧不尽春风吹又生远芳侵古道

    后记

    rowspan 和 colspan 属性所对应的值,就是你要合并单元格的数量,如果值为2,那就是合并两个单元格,rowspan属性的意思就是合并两个相对于的行,colspan属性的意思就是合并两个相对的列,之所以说这个是因为很多人在对于属性的理解上面都会出现一点问题。

    展开全文
  • 含有合并单元格的html读取代码

    被恶心了很久了,写爬虫的遇到这种网页
    http://www.quzgt.gov.cn/News/Newsjuti.aspx?artid=6577

    在此感谢 浙江宇天科技股份有限公司 的某个领导,没你的指导我不会想到去这么折腾一下,虽然聊了一阵木有什么结果。

    标题,单元格一下子横向合并,一下子竖向合并,直接用pandas的read_html读出来十分辣眼睛
    read_html(io, match=’.+’, flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=False, thousands=’,’, encoding=None, decimal=’.’, converters=None, na_values=None, keep_default_na=True)
    也可能是我不会用吧=。=
    总之,我自己写了一段解析的代码,方便自己平时用
    github地址(暂用公司账号):
    https://github.com/start712/MyWheels
    文章开头的网站,用table_tr_td解析出来效果图:
    文章开头的网站,用table_tr_td解析出来效果图

    # -*- coding:utf-8 -*-  
    """
    --------------------------------
        @Author: Dyson
        @Contact: Weaver1990@163.com
        @file: html_table_reader.py
        @time: 2017/7/19 16:35
        @instruction: table_tr_td => 解析html中tabel>tr>td这种格式的表格
                      standardize => 将解析过存储在df中的表格按需求做DIY
    --------------------------------
    """
    import sys
    import bs4
    import pandas as pd
    import numpy as np
    
    sys.path.append(sys.prefix + "\\Lib\\MyWheels")
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    class html_table_reader(object):
        def __init__(self):
            pass
    
        def table_tr_td(self, e_table, fill_method = None):
            """
            :param e_table: bs4中的table元素
            :param fill_method : 参数与fillna()中的method相同,选择填充方式,否则用None
            :return:
            """
            if not (isinstance(e_table, bs4.element.Tag) or isinstance(e_table, bs4.BeautifulSoup)):
                e_table = bs4.BeautifulSoup(e_table, 'html.parser')
    
            # 搭建表格框架
            df0 = pd.DataFrame(e_table.find_all('tr'))
            df0[1] = df0[0].apply(lambda e:len(e.find_all('td')))
            col_count = max(df0[1])
            row_count = len(df0.index)
            df = pd.DataFrame(np.zeros([row_count, col_count]), dtype=int)
    
            # 根据网页中的表格,还原在dataframe中,有合并单元格现象的
            # 值填在第一个单元格中,其他的用None填充
            e_trs = df0[0].tolist()
            for r in xrange(row_count):
                row = e_trs[r]
                e_tds = row.find_all('td')
                i = 0
                has_colspan = False
                for c in xrange(col_count):
                    if pd.isnull(df.iloc[r,c]):
                        continue
                    e_td = e_tds[i]
                    # 横向合并的单元格
                    if e_td.has_attr('colspan'):
                        has_colspan = True
                        for j in xrange(1, int(e_td['colspan'])):
                            df.iloc[r, c + j] = None
                    # 竖向合并的单元格
                    if e_td.has_attr('rowspan'):
                        for j in xrange(1, int(e_td['rowspan'])):
                            df.iloc[r + j, c] = None
                    df.iloc[r, c] = e_td.get_text(strip=True)
                    i = i + 1
                if has_colspan and fill_method:
                    df.iloc[r,:] = df.iloc[r,:].fillna(method = fill_method)
    
            return df
    
        def standardize(self, df, delimiter='/\n/', b0 = True):
            """将数据的标题与数据分离,将有合并单元的行合并"""
            if b0 and df.iloc[0,:].hasnans and df.iloc[1,:].hasnans:# 假设第一排数据行没有横向合并单元格
                df.iloc[0, :] = df.iloc[0, :].fillna(method='ffill') + (delimiter + df.iloc[1,:]).fillna('')
                df.columns = df.iloc[0]
                df.columns.name = None
                df = df.drop([0,1], axis=0)
    
            for r in xrange(df.shape[0]-1, 0, -1):
                if df.iloc[r,:].hasnans:
                    df.iloc[r-1, :] = df.iloc[r-1, :] + (delimiter + df.iloc[r, :]).fillna('')
                    df = df.drop(r,axis=0)
    
            df.index = range(len(df.index)) # 索引重新从0计算
            return df
    展开全文
  • 上一章我讲了如何创建表格和设置单元格的大小,这一章我讲一讲如何设置单元格背景与如何合并单元格。 老规矩,先上图: ...这些代码中内容没有改变,只改变了标签,左右合并的标签是colspan,上下合并的

    上一章我讲了如何创建表格和设置单元格的大小,这一章我讲一讲如何设置单元格背景与如何合并单元格。
    老规矩,先上图:在这里插入图片描述
    这是设置表格背景的代码,只加了background标记,就可以轻轻松松的达到表格背景创建的功能(注意,这只是在一个格内设置背景,如要没个格都设置背景,需在每个td标记内写入background标记和图片名)。
    合并单元格也很简单,但是分类很多,又分上下左右合并。
    1.左右合并:在这里插入图片描述

    2.上下合并:
    在这里插入图片描述
    3.上下左右合并:在这里插入图片描述
    这些代码中内容没有改变,只改变了标签,左右合并的标签是colspan,上下合并的标签是rowspan,上下左右合并的标签是colspan+rowspan。
    这一章就讲到这里,下一章我再讲讲如何创建文本超链接,图像超链接以及其他超链接~
    系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~

    展开全文
  • 本脚本支持不连续的列合并,比如需要合并的列为1,3,5,或者是随意的N列,合并的只能是垂直方向的合并,不支持水平方向的合并。下面看代码: /////////////////////////////////////////////// // 功能:合并...
  • 本套教程由薛欣老师精心录制,中国教程网视频教程制作组合成美化并制作成网络优化版本,授权网易学院发布。 教程特点: 1.名师主讲,内容丰富。 2.文件体积小,网络传输速度快,易于观看。 3.具有交互功能,用户...
  • js动态合并单元格

    2021-07-16 15:10:09
    前几天做网页的时候涉及到动态合并单元格的问题,经过一番努力终于是做好了,所以现在把代 码贴出来。 首先说一下我们要实现的效果原图是这样的 然后我们要实现的效果是这样的 而且呢表格的生成是发送ajax...
  • js合并单元格

    2010-08-13 00:43:42
    数据是动态生成的。如: 姓名 性别 年龄 科目 ...要求用js把姓名、性别、年龄列相同的单元格合并。 因为结果集是查询得到的,所以要动态合并。 我已经实现了项目列相同单元格合并, 但怎样将姓名、性别、年...
  • markdown 编辑器通过HTML实现:设置单元格背景颜色、设置字体颜色和合并单元格的两种方式
  • 前端页面动态合并单元格

    千次阅读 2018-11-06 22:36:50
    //多级次动态合并表格行 function checkArray(arr1,arr2){ for (var i = 0; i < arr1.length; i++) { if (arr1[i].innerText===arr2[i].innerText) { }else{ return false; } ...
  • 基于浏览器展现HTML网页中的表(是指Table),普遍用于数据展现和录入,其中数据分类又常用合并单元格。在HTML DOM,Table的行数据是可以通过JavaScript的函数方法insertRow(index)动态增加的,通过insertCell...
  • HTML合并单元格

    2015-04-01 21:44:49
    无标题文档 1-1 1-2 1-3 2-2 2-4 3-1
  • 在HTML DOM,Table的...其中,比较麻烦的是合并单元格,这里以行合并为例,使用rowspan属性的设置来实现,关键点是insertRow(index)和insertCell(index)index值,也就是合并单元格的时候,index顺序发生的变化。
  • HTML创建表格及合并单元格

    万次阅读 多人点赞 2019-09-15 19:25:15
    在HTML的表格和我们日常生活的表格是有所差距的,在平时我们认为表格是单纯的由行和列组成的,如下图1所示,但在HTML,表格是由边框、行和单元格组成的,边框是最外面的一层大框,行与我们平时理解的一样,但...
  • 大概是做这样的一个界面,官网里边只有复杂表头(合并单元格)的内容,却没有数据的合并,见上图。 问题描述: 最开始的想法是这样: 在第一行td上加rowspan属性,其他td隐藏。在开发者模式,也证明这一点可行,因而...
  • html表格中单元格合并用法 html表格单元格合并从本质上,就是删除多余的单元格,将某一个单元的长度的大小变成合并之后的大小。 例如下面的简历制作。 比如个人简历单元格合并,就是多余单元格删除,然后将...
  • HTML 合并单元格 具体实例:用HTML实现下列表格 知识点一 HTML表格标签:<table></table> 表头标签:<th></th> 行标签:<tr></tr> 列标签:<td></td> 制表思路:...
  • 怎么在html里把一行的两列合并世界最不可以相信的话,就是从女人嘴里说出的话〃如上图,怎么做出上面图的效果,分享大神详解CSS表格单元格占两行可以参考以下的代码单元格占两行的.. 单元格占两列的 扩展资料...
  • html单元格合并

    2014-09-15 09:25:22
    html单元格合并,上下单元格相同的内容进行合并,去除第一行第一列后的单元格合并参照之前的内容进行合并
  • ASP.NET操作EXCEL 合并单元格 大全

    千次阅读 2013-09-02 14:17:12
    下面是调用模板的一段代码  1     #region  使用模板导出Excel表  2     case   " ReportByTemp " :  3    {  4    5    DataView dv  =  Cache[ " ReportByTemp " ]  as  ...
  • HTML网页使用表格的时候,如果要跨列合并单元格,使用<tr colspan=?></tr> HTML网页使用表格的时候,如果要跨行合并单元格,使用<tr rowspan=?></tr> <table> <tr> <td ...
  • 标题标签 < h1></h1> <h2></h2> <h3></h3>... 为了使网页更具有语义化,我们经常会在页面中用到标题标签。HTML提供了6个等级的网页标题,即<h1>...
  • 分享给大家供大家参考,具体如下:运行效果截图如下:合并前:合并后:具体代码如下:/p>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">/*** desc : 合并指定表格(表格id为table_id)指定列(列数...
  • web(四) 表格与合并单元格

    千次阅读 2019-05-09 20:25:47
    # 合并单元格 跨行合并:rowspan 跨列合并:colspan 跨列合并的步骤: 找到要合并的首个单元格, 添加colspan属性 表示这个单元格占几列 删除下一个单元格 跨行合并的步骤: 找到要合并的首个单元格,...
  • ``` excel = new Excel.Application(); excel.UserControl = true; excel.DisplayAlerts = false; excel.Application.Workbooks.Open(fileName, missing, missing, missing, missing, missing, missing, ...
  • 自己的想法就是在画完了表格之后再修改表格的结果,添加rowspan属性达到合并单元格的目的.   思路: 假如表格列数据依次是A,A,A,B,B,B,C,C,C 显示表格完之后,进行逐行进行查找得到这样的一个数组[3,...
  • 管理菜单 生成帖子 置顶 推荐 取消推荐 锁定 解锁 移动 编辑 删除 帖子加分 帖子高亮 取消高亮 结 帖 发 帖 回 复 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 js动态合并单元格(解决即给分)[问题...
  • 属性: colspan 横向的合并单元格 rowspan 纵向的合并单元格文档流所有的元素默认情况下都是在文档流存在的文档流是网页的最底层元素在文档流的特点:块元素 1. 默认宽度是父元素的全部 2. 默认高度被内容 (子元素...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,381
精华内容 4,152
关键字:

网页中合并单元格代码