openpyxl操作excel

预先知道:

 openpyxl中有三个不同层次的类:

①Workbook是对工作簿的抽象;
②Worksheet是对表格的抽象;
③Cell是对单元格的抽象;
每一个类都包含了许多属性和方法。

1.用 openpyxl 模块打开 Excel 文档

# 在导入 openpyxl 模块后,就可以使用openpyxl.load_workbook()函数来打开指定的 excel 文件

wb = openpyxl.load_workbook(r'C:\Users\WIN10\Desktop\hash\request.xlsx')  # 打开excel文件

2. 从工作簿中获取工作表

工作簿对象.sheetnames - 获取当前工作簿中所有表的名字

工作簿对象.active - 获取当前活动表对应的Worksheet对象

工作簿对象[表名] - 根据表名获取指定表对象

表对象.title - 获取表对象的表名

表对象.max_row - 获取表中最多有多少行

表对象.max_column - 获取表有多少列

3 从表中取得单元格

获取到表以后,咱们可以通过表去获取表中的单元格:

value - 获取单元格中的内容 - 单元格对象.row - 获取行号(数字1开始) - 单元格对象.column - 获取列号(数字1开始) -

单元格对象.coordinate - 获取位置(包括行号和列号)

# 获取活跃表对象
sheet = wb.active
print(sheet)

# 修改工作表名称
sheet.title = "xxx"
print(sheet.title)

# 获取单元格对应的 Cell 对象
# A1 表示A列中的第一行,这儿的列号采用的是从A开始的
a1 = sheet['A1']  
print(a1)

# 获取单元格中的内容
content = a1.value
print(content)  

# 获取单元格的行和列信息
row = a1.row
print('行:', row) 

column = a1.column
print('列:', column)  

# 获取a1这个cell的位置
coordinate = a1.coordinate
print(coordinate)  

参考:
用字母来指定列,这在程序中可能有点奇怪,特别是在 Z 列之后,列开始使用两个字母:AA、AB、AC 等。
 作为替代,在调用表的 cell()方法时,可以传入整数 作为 row 和 column 关键字参数,也可以得到一个单元格。第一行或第一列的整数 是 1,不是 0。

 

# 获取激活页的第一列所有内容
sheet = wb.active
row_num = sheet.max_row

for row in range(1, row_num+1):
    cell = sheet.cell(row, 1)
    print(cell.value)

# 3. 获取矩形区域中的单元格对象
cell_tuples = sheet['A1': 'C3']
for cells in cell_tuples:
    for cell in cells:
        print(cell.coordinate, cell.value)

保存与退出:

# 保存excel修改与退出
wb.save(r'C:\Users\WIN10\Desktop\hash\request.xlsx')
wb.close()

创建新的sheet页,删除某个sheet页

# 默认创建的表单,是直接追加在末尾的
wb.create_sheet('Lastsheet')
print(wb.sheetnames)


# 我们也可以指定索引
wb.create_sheet('First sheet', index=0)
wb.create_sheet('Middle sheet', index=1)
print(wb.sheetnames)


# 也可以直接使用del删除
del wb['First sheet']
del wb['Middle sheet']
print(wb.sheetnames)


# 写入单元格的几种方式
sheet = wb['Sheet1']
sheet['A1'] = 'hello word'
print(sheet['A1'].value)

# 循环给每一行添加自然数序列(结果是一个50*10的矩阵)
sheet1 = wb.create_sheet('range name')
for row in range(1, 50):
    rows = sheet1.append(range(10))

# 在指定范围内写入数据
sheet2 = wb.create_sheet(title='data sheet')
for row in range(1, 10):
    for col in range(1, 5):
        sheet2.cell(column=col, row=row, value="hello world")

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值