当前位置:首页 » 编程语言 » python合并单元格

python合并单元格

发布时间: 2023-09-17 22:27:55

A. python操作word文档,如何合并单元格

>>>app=my.Office.Word.GetInstance()
>>>doc=app.Documents[0]
>>>table=doc.Tables[1]
>>>table.Cell(1,1).Select()
>>>app.Selection.MoveDown(Unit=5,Count=2,Extend=1)
>>>app.Selection.Cells.Merge()
>>>
  1. my.Office.Word.GetInstance()用win32com得到Word的Application对象的实例

  2. 我所使用的样本word文件中包含两个Table第二个Table是想要修改的

  3. table.Cell(1,1).Select()用于选中这个样表的第一个单元格

  4. app.Selection.MoveDown用于获得向下多选取3个单元格

  5. app.Selection.Cells.Merge()用于执行合并工作

B. Python 拆分excel表内所有合并单元格

import openpyxl

from openpyxl.styles import  PatternFill

workbook = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\user_info_format1.xlsx')  # 加载已经存在的excel

name_list = workbook.sheetnames #获取所有的sheet表名

worksheet = workbook[name_list[0]]

fill = PatternFill("solid", fgColor="FF0000") #设置填充样式

m_list = worksheet.merged_cells  # 合并单元格的位置信息,可迭代对象(单个是一个'openpyxl.worksheet.cell_range.CellRange'对象),print后就是excel坐标信息

cr = []

for m_area in m_list:

    # 合并单元格的起始行坐标、终止行坐标。。。。,

    r1, r2, c1, c2 = m_area.min_row, m_area.max_row, m_area.min_col, m_area.max_col

    # 纵向合并单元格的位置信息提取出

    if r2 - r1 > 0 or c2 - c1 > 0:

        cr.append((r1, r2, c1, c2))

        print('符合条件%s' % str(m_area))

#print(cr)

# 这里注意需要把合并单元格的信息提取出再拆分

for r in cr:

    worksheet.unmerge_cells(start_row=r[0], end_row=r[1],

                            start_column=r[2], end_column=r[3])

    if r[3]-r[2]==0:  #单独列合并

        for row  in  (range(r[0], r[1]+1)):

            worksheet.cell(row=row, column=r[3], value=worksheet.cell(r[0], r[2]).value)

            worksheet.cell(row, column=r[3]).fill = fill #将对应拆分单元格填充颜色

    elif  r[1]-r[0]==0 :  #单独行合并

        for column  in  (range(r[2], r[3]+1)):

            worksheet.cell(row=r[1], column=column, value=worksheet.cell(r[0], r[2]).value)

            worksheet.cell(row=r[0], column=column).fill = fill #将对应拆分单元格填充颜色

    else :  #多行、列合并

        for row  in  (range(r[0], r[1]+1)): 

            for column  in  (range(r[2], r[3]+1)):

                worksheet.cell(row, column, value=worksheet.cell(r[0], r[2]).value)

                worksheet.cell(row, column).fill=fill #将对应拆分单元格填充颜色

workbook.save(r'C:\Users\Administrator\Desktop\data25.xlsx') #另存为新表

C. Python处理Excel效率高十倍(下篇)通篇硬干货,再也不用加班啦

《用Python处理Excel表格》下篇来啦!

身为工作党或学生党的你,平日里肯定少不了与Excel表格打交道的机会。当你用Excel处理较多数据时,还在使用最原始的人工操作吗?现在教你如何用Python处理Excel,从此处理表格再也不加班,时间缩短数十倍!

上篇我们进行了一些事前准备,目的是用Python提取Excel表中的数据。而这一篇便是在获取数据的基础上,对Excel表格的实操处理。

第9行代码用来指定创建的excel的活动表的名字:
·不写第9行,默认创建sheet
·写了第9行,创建指定名字的sheet表

第9行代码,通过给单元格重新赋值,来修改单元格的值
第9行代码的另一种写法sheet['B1'].value = 'age'
第10行代码,保存时如果使用原来的(第7行)名字,就直接保存;如果使用了别的名字,就会另存为一个新文件

插入有效数据
使用append()方法,在原来数据的后面,按行插入数据

·insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入
·insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入

·delete_rows(idx=数字编号, amount=要删除的行数)
·delete_cols(idx=数字编号, amount=要删除的列数)

move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上

举个例子:

openpyxl.styles.Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
其中,字体颜色中的color是RGB的16进制表示

再者,可以使用for循环,修改多行多列的数据,在这里介绍了获取的方法

Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,'right,‘general’
垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’

当然,你仍旧可以调用for循环来实现对多行多列的操作

设置行列的宽高:
·row_dimensions[行编号].height = 行高
·column_dimensions[列编号].width = 列宽

合并单元格有下面两种方法,需要注意的是,如果要合并的格子中有数据,即便python没有报错,Excel打开的时候也会报错。
merge_cells(待合并的格子编号)
merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

拆分单元格的方法同上
unmerge_cells(待合并的格子编号)
unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

create_sheet(“新的sheet名”):创建一个新的sheet表

第11行,使用title修改sheet表的名字

remove(“sheet名”):删除某个sheet表
要删除某sheet表,需要激活这个sheet表,即:将其作为活动表(关于活动表的定义请看前面文章开头写的有)下面8~11行代码展示了原始活动表与手动更换活动表,第13行代码删掉活动表

背景知识
numpy与pandas
NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,我们需要利用Pandas进行Excel的合并

1.下面的代码生成了一个5行3列的包含15个字符的嵌套列表
(注意,第4行代码:15是等于35的,如果是15对应43,或者16对应5*3都会报错)
(注意,第5行代码,虽然5行3列是15个数据,但是可以指定数据从1开头,到16结束)

2.添加表头
使用pandas库的DataFrame来添加表头。关于打印的结果,把最左侧的一列去掉之后会发现结果很和谐,这是因为最左侧的一列代表行号。此时xx变量的类型是

xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。

1.创建一个工作簿

2.创建sheet表

3.写入数据

D. python使用reportlab合并表格后怎么在表格内居中

#找到这个table_model设置表格属性,

def table_model(data):

# 合并表格 ('SPAN',(第一个方格的左上角坐标),(第二个方格的左上角坐标)),合并后的值为靠上一行的值,按照长方形合并
('SPAN',(0,0),(0,1)),
('SPAN',(1,0),(2,0)),
('SPAN',(3,0),(4,0)),
('SPAN',(5,0),(7,0)),

#设置下面两项
('ALIGN', (0, 0), (-1, -1), 'CENTER'), # 左右居中对齐
('VALIGN', (-1, 0), (-2, 0), 'MIDDLE'), # 垂直居中对齐

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:425
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:550
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:736
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:529
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:140
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:227
java驼峰 发布:2025-02-02 09:13:26 浏览:645
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:527
linuxadobe 发布:2025-02-02 09:09:43 浏览:205
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:721