美文网首页
三、Openpyx工作表对象的属性和方法-1

三、Openpyx工作表对象的属性和方法-1

作者: JunChen | 来源:发表于2022-07-23 17:16 被阅读0次

工作表对象可以设置的属性和方法比较多,分成几次讲,本章先讲一下比较基础的。


开始!

常用的工作表属性

1. 设置工作表名称

worksheet.title = '工作表名'

2. 设置工作表标签颜色

worksheet.sheet_properties = '颜色代码‘

3. 隐藏或者显示工作表

worksheet.sheet_state = 参数

可选参数有:

  • 'visible':显示
  • 'hidden':隐藏
  • 'veryHidden':深度隐藏

拓展

1. 什么叫 veryHidden

veryHidden我称它为深度隐藏,正常来说我们隐藏一个工作表后,鼠标右击工作表会弹出一个菜单,里面会有一个“取消隐藏”的选项,你可以选中想要取消隐藏的工作表然后点确定,该工作表就会重新出现。但当你设置成veryHidden,该工作表就不会出现在"取消隐藏"的框里。

2. 图文说明

  1. 在一个工作簿里新建三个工作表,如图1.


    图1
  2. 把第二个表隐藏掉

  3. 打开VBA代码编辑器,点第三个表,然后设置如图2的选项,就可以把该表深度隐藏了。


    图2
  4. 鼠标右击剩下的工作表,选中“取消隐藏”选项,在弹出的对话框里,只能看到普通隐藏的那个工作表,看不到深度隐藏的工作表,如图3。


    图3
  5. 结论:如果想要让别人不是那么简单的就能看到自己隐藏的工作表,就使用veryHidden,毕竟不是每个人都会去打开VBA编辑器修改属性。


往单元格区域里写入数据

1. 一个一个单元格写入数据(两种写法)


# 目标:把python字符串写入A1单元格

import openpyxl

wb = openpyxl.Workbook()

ws = wb.active

# 第一种写法
ws['A1'].value = 'python'  

# 第二种写法
ws.cell(row=1,column=1,value='python') # row , column 都可以省略不写,如下面一行
ws.cell(1,1).value = 'python'

2. 一行一行写入数据

import openpyxl
wb = openpyxl.Workbook()
ws = wb.active

ws.append(['存货名称','单位','数量'])  # 写入一行数据

对于已有数据的工作表可以查看的属性

属性 含义
worksheet.max_row 数据区域的最大行号
worksheet.min_row 数据区域的最小行号
worksheet.max_column 数据区域的最大列号
worksheet.min_column 数据区域的最小列号

列号返回的是数字,不是字母

实例

import openpyxl

wb = openpyxl.Workbook()

ws = wb.active

ws.append(['存货名称','单位','重量'])
ws.append(['A','kg',15])
ws.append(['B','kg',15])
ws.append(['C','kg',15])
ws.append(['D','kg',15])

print(ws.max_row) # 返回 5
print(ws.min_row) # 返回 1

print(ws.max_column) # 返回 3
print(ws.min_column) # 返回 1

wb.save('/Users/JunChen/Desktop/text.xlsx')

工作表中关于行和列的设置

1. 设置行高和列宽

设置行高
ws.row_dimensions[row].height = 25 # row 是行号

设置列宽
ws.column_demensions[col].width = 15.5 # col是列号,必须填的是字母.
实例
import openpyxl

wb = openpyxl.Workbook()

ws = wb.active

ws.append(['存货名称','单位','重量'])
ws.append(['A','kg','15'])
ws.append(['B','kg','15'])
ws.append(['C','kg','15'])
ws.append(['D','kg','15'])

# 设置列宽
for c in ['A','B','C']:
    ws.column_dimensions[c].width = 15

# 设置行高
for r in range(1,6):
    ws.row_dimensions[r].height = 30
    
wb.save('/Users/JunChen/Desktop/text.xlsx')

2. 插入行或者列

插入行

worksheet.insert_rows(index,amount)

插入列

worksheet.insert_cols(index,amount)

amount不填,默认为1

实例

import openpyxl

wb = openpyxl.Workbook()

ws = wb.active

ws.append(['存货名称','单位','重量'])
ws.append(['A','kg','15'])
ws.append(['B','kg','15'])
ws.append(['C','kg','15'])
ws.append(['D','kg','15'])


ws.insert_rows(3,2) # 在第三行前面插入两行
ws.insert_cols(2) # 在第2列前面插入一列

wb.save('/Users/JunChen/Desktop/text.xlsx')

3. 删除行或者列

删除行

worksheet.delete_rows(index,amount)

删除列

worksheet.delete_cols(index,amount)

amount不填默认为1

实例
import openpyxl

wb = openpyxl.Workbook()

ws = wb.active

ws.append(['存货名称','单位','重量'])
ws.append(['A','kg','15'])
ws.append(['B','kg','15'])
ws.append(['C','kg','15'])
ws.append(['D','kg','15'])


ws.delete_rows(2,2) # 从第二行开始,删除两行,删除第二行,第三行

ws.delete_cols(2) # 删除第二列

wb.save('/Users/junliangchen/Desktop/text.xlsx')

移动单元格区域

worksheet.move_range(cell_range, rows=0, cols=0, translate=False)

参数详解

  • cell_range:要移动的单元格区域
  • row:移动多少行
    • 正数:向下移动
    • 负数:向上移动
  • cols:移动多少列
    • 正数:向右移动
    • 负数:想左移动
  • translate:是否把公式也跟着移动

实例

import openpyxl


wb = openpyxl.Workbook()

ws = wb.active

ws.append(['存货名称','数量','单价'])
ws.append(['A',2,5])
ws.append(['A',2,5])
ws.append(['A',2,5])
ws.append(['A',2,5])
ws.append(['A',2,5])

ws['D1'].value = '金额'


# 添加公式
for r in range(2,7):
    ws.cell(r,4).value = f"=B{r}*C{r}"


# 把A6:D6区域向下移动一行,再向右移动3列
ws.move_range('A6:D6',1,3,translate=True)

wb.save('/Users/JunChen/Desktop/text.xlsx')

translate 详解

当translate是True时,效果如图1
图1
当translate是False,效果如图2
图2

合并单元格和取消合并单元格


ws.merge_cells('A1:F1') # 合并单元格

ws.unmerge_cells() # 取消合并单元格

合并居中

通常都会有合并并且居中单元格的需求,比如:要实现A1:F1合并居中,可以先对A1单元格设置居中,然后合并A1:F1单元格,这样就可以实现合并居中的效果了。

import openpyxl
from openpyxl.styles import Alignment


wb = openpyxl.Workbook()

ws = wb.active

ws['A1'] = '销售明细表'

# 没有下面这一步是实现不了合并居中效果的
ws['A1'].alignment = Alignment(horizontal='center',vertical='center')

ws.merge_cells('A1:F1')


wb.save('/Users/JunChen/Desktop/text.xlsx')

冻结窗口

worksheet.freeze_panes = 'A2' 点到A2单元格然后按冻结窗口


组合(折叠)

如图所示的功能


组合图示

列组合

worksheet.column_dimensions.group(start, end=None, outline_level=1, hidden=False)

参数详解
  • start:必须要有的参数,从那一列开始折叠
  • end:前面是开始,这个是结束的列
  • outline_level:组合分级
  • hidden:是否把组合折叠起来,隐藏内容。

实例

import openpyxl


wb = openpyxl.Workbook()

ws = wb.active

ws.append(['name','number','unit','price'])
ws.append(['A',2,5,0])
ws.append(['A',2,5,0])
ws.append(['A',2,5,0])
ws.append(['A',2,5,0])
ws.append(['A',2,5,0])
ws.append([])
ws.append(['A',1,2,3])

ws.column_dimensions.group('B','C')


wb.save(r'/Users/JunChen/Desktop/text.xlsx')

行组合

worksheet.row_dimensions.group(start, end=None, outline_level=1, hidden=False)

同上!


结束!

相关文章

  • 三、Openpyx工作表对象的属性和方法-1

    工作表对象可以设置的属性和方法比较多,分成几次讲,本章先讲一下比较基础的。 开始! 常用的工作表属性 1. 设置工...

  • JS-对象

    1. 基础 可通过字面量定义对象,在对象内部定义属性和方法 可以通过对象.属性或者对象['属性'] 对象['方法...

  • 2.1 类和对象(面向对象)

    1、类和对象 对象:确定对象的属性和方法类的特点:类是对象的类型,具有相同属性和方法的一组对象集合属性:对象具有的...

  • 08 js03 对象、包装类

    1、对象:【对象的属性和方法,方法存在的形式:属性为方法名/引用;属性值为函数体,对象的属性值可以是任何类型,原型...

  • 原型继承

    一、原型判断方法*术语解释:成员=属性+方法实例成员:实例属性和实例方法原型成员:原型对象属性和原型对象方法1、原...

  • Python中类的多态、封装、继承

    面向对象的三大特征:   1. 封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可...

  • 刨了Function()函数对象的祖坟

    第一章:深入了解函数的属性和方法 知识点 函数也是对象 对象成员包括属性和方法 1. 函数对象的属性和方法详解 a...

  • 对象,包装类

    对象:对象是包含属性和方法的集合体; javascript支持三种对象: 1.内置对象 2...

  • jsday14

    DOW 文档对象 1.API 文档接口 结点 1.nodeType 节点类型 结点方法 结点属性方法 事件绑定 表...

  • JavaScript - 对象

    对象是键值对的集合,对象是由属性和方法构成的(也有说法为:对象里面皆属性,认为方法也是一个属性) 创建对象 1) ...

网友评论

      本文标题:三、Openpyx工作表对象的属性和方法-1

      本文链接:https://www.haomeiwen.com/subject/obcbirtx.html