首页 > 编程语言 >PYTHON - openpyxl (三)

PYTHON - openpyxl (三)

时间:2022-12-20 00:22:19浏览次数:36  
标签:xlsx None openpyxl PYTHON column sh row wb

1.1 移动数据

sheet.move_range(cell_range, rows=0, cols=0, translate=False):
  • cell_range 是一个区域
  • rows 表示相对移动的行数(正数向下,负数向上)
  • cols 表示相对移动的列数(正数向右,负数向左)
  • translate 对于有公式的,False表示不调整,True 表示调整。
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.move_range("a1:c3", 5, 5, True)
wb.save("d:/1.xlsx")

1.2 冻结空格

sheet.freeze_panes = "c2"

表示冻结C2上面的行,C2左边的列。

注意:'A1' 不符合规定,因为它上面没有行,左面没有列了

wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.freeze_panes = "c2"
wb.save("d:/1.xlsx")

如果要取消冻结,直接赋值为None即可。

sheet.freeze_panes = None

1.3 合并单元格

1.3.1 合并

merge_cells(range_string=None, start_row=None, start_column=None, end_row=None, end_column=None):
  • range_string 指定范围,如:'a1:g20'
  • start_row 开始行
  • start_column 开始列
  • end_row 结束行
  • end_column 结束列
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.merge_cells('a1:b5')
wb.save("d:/1.xlsx")
wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh.merge_cells(start_row=1, start_column=1, end_row=3, end_column= 3)
wb.save("d:/1.xlsx")

1.3.2 取消合并

与合并方法的参数一样:

unmerge_cells(range_string=None, start_row=None, start_column=None, end_row=None, end_column=None):

1.4 写入公式

sheet["c1"] = '=sum(a1:b1)'
sh.cell(2,3).value = '=sum(a2:b2)'

就是向单元格写公式,写的方法和其它数据一样,只不是值是公式。

注意:公式前面有等号。

wb: Workbook = load_workbook("d:/test.xlsx")
sh: Worksheet = wb.active
sh["c1"] = '=sum(a1:b1)'
sh.cell(2,3).value = '=sum(a2:b2)'
wb.save("d:/1.xlsx")

注意:在读取的时候,如果是公式则读取到的不是公式计算后的值。

需要把data_only设置为True,这时读取的才是值。

wb: Workbook = load_workbook("d:/test.xlsx",data_only=True)

1.5 分级显示

对某些行或列分成一组,或称为组合。

1.5.1 按列分组

sheet.column_dimensions.group('开始列','结束列', 级别, hidden=False)
  • 级别一般是1-7
  • hidden表示隐藏这一组
wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.column_dimensions.group('a', 'f', 1, hidden=True)
wb.save("1.xlsx")

1.5.2 按行分组

sheet.row_dimensions.group(开始行,结束行,级别,hidden=False)

参数同按列分组

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.row_dimensions.group(1, 100, 1, hidden=True)
wb.save("1.xlsx")

1.6 批注

批注是一个对象,创建批注对象之后,可以添加到单元格。

类型:openpyxl.comments.Comment

# 参数
  def __init__(self, text, author, height=79, width=144):
  • 参数:批注内容,作者,高,宽
  • 属性:content (批注内容),author, height, width

创建对象之后赋值给单元格的comment 属性。

# 批注类
from openpyxl.comments import Comment

wb: Workbook = load_workbook("d:/test.xlsx", data_only=True)
sh: Worksheet = wb.active
sh.cell(1,1).comment = Comment('批注内容','作者')
wb.save("1.xlsx")

标签:xlsx,None,openpyxl,PYTHON,column,sh,row,wb
From: https://www.cnblogs.com/three-sheep/p/16993416.html

相关文章

  • Python 快速入门:学习Python的基础操作
    @目录变量赋值单变量赋值多变量赋值数据类型Number类型定义数字类型转换运算相关函数String类型定义字符串格式化多行字符串str.format()f-string相关函数List类型定义常用......
  • python强大的hook函数
    什么是hook?钩子函数(hookfunction),可以理解是一个挂钩,作用是有需要的时候挂一个东西上去。具体的解释是:钩子函数是把我们自己实现的hook函数在某一时刻挂接到目标挂载点上......
  • Python 发起post/get请求(封装)
    get和post是最常用的http/htttps请求方式,一定要掌握好二者各自特点以及区别。get和post特点:#get请求请求参数在请求地址后面,提交的数据量较小,安全性较差,不建议用来提交敏......
  • [编程基础] Python字符串替换笔记
    date:2021-08-1622:00:12+0800tags:-编程基础-PythonPython字符串替换笔记Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下......
  • [编程基础] Python数据生成库Faker总结
    date:2020-06-2112:03:09+0800tags:-编程基础-PythonPythonFaker教程展示了如何使用Faker软件包在Python中生成伪数据。我们使用joke2k/faker包。1介绍F......
  • [编程基础] Python模块和包使用笔记
    date:2020-08-0121:45:14+0800tags:-Python-编程基础本文探讨Python模块和Python包,这两种机制有助于模块化编程。模块化编程是指将大型笨拙的编程任务分解......
  • [编程基础] Python列表解析总结
    dates:2020-06-2614:29:00+0800tags:-编程基础-Python在本教程中,我们将学习使用Python列表解析(listcomprehensions)相关知识1使用介绍列表解析是一种基......
  • python之路52 ORMQ查询、ORM事务、查询优化、常用字段及参数、ajax方法
    Q查询进阶操作fromdjango.db.modelsimportQq_obj=Q()#1.产生q对象q_obj.connector='or'#默认多个条件的连接是and可以修改为orq_obj.children.append(('......
  • 进入python的世界_day55_Django—ORM进阶操作、ORM事务、Ajax
    一、ORM进阶操作1.Q查询进阶Q查询还可以将查询的字段改为字符串形式q_obj=Q()q_obj.connector='or'#q对象默认是多个条件也是and关系可以修改为orq_obj.child......
  • Python 1~300的奇数,7的倍数不要
    第一种方法i=1j=0whilei<=300:ifi%2!=0:ifi%7==0:i+=1continuej+=ii+=1print(j)先打出,检验输出300......