吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2011|回复: 7
收起左侧

[Python 转载] openpyxl库学习笔记

[复制链接]
lishunwei 发表于 2020-6-24 19:36
openpyxl库学习笔记

1.Excel读取操作

  • 获取Excel文件:

    from openpyxl import load_workbook #导入相关函数
    path = r"文件路径\文件名.xlsx".replace('\\', '/') #设置文件路径
    data = load_workbook(path) #获取workbook对象
  • 获取工作表Sheet:

    # 获得所有sheet的名称
    print(data.get_sheet_names())
    # 根据sheet名字获得sheet
    sheet = data.get_sheet_by_name('Sheet1') #这种方法官方已经不推荐使用了
    sheet = data["Sheet1"] #正确操作
  • 获取单元格:

    # 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
    b4 = sheet['B4']#b4为<Cell 'Sheet1'.B4>
    #要获取B4单元格里的内容,操作如下:
    print(b4.value)
    #获取b4单元格的列、行、以及内容
    print(f'({b4.column}, {b4.row}) is {b4.value}') # 返回的数字就是int型
    # 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B2
    b4_too = sheet.cell(row=4, column=2)
    print(b4_too.value)
  • 获取最大行和最大列

    print(table.max_row,table.max_column)
  • 迭代行和列

    sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。

    sheet.columns类似,不过里面是每个tuple是每一列的单元格

    #获取每一行后,再获取每一行的每个单元格的内容
    for row in sheet.rows:
    for cell in row:
      print(cell.value)
    #获取每一列后,再获取每一列的每个单元格的内容
    for column in sheet.columns:
    for cell in column:
      print(cell.value)
  • 单元格切片操作:

    #获取单元格'B1'到"B44"的内容
    for i in table['B1':"B44"]:#i是一个tutple对象
      for j in i:#所以再次对i进行迭代
          print(j.value)
    #获取单元格'A1'到"B44"的内容        
    for i in table['A1':"B44"]:
      for j in i:
          print(j.value)

2.Excel写入操作:

# 直接给单元格赋值也可以
sheet['A1'] = 'good'
#给'C2'到'C44'单元格写入数字 1
for i in table['C2':'C44']:
    for cell in i:
        cell.value = "1"

3.单元格样式设置:

from openpyxl.styles import Font, colors, Alignment #导入相关函类

#字体:
bold_itatic_24_font = Font(name='等线', size=24, italic=True, color=colors.RED, bold=True)
sheet['A1'].font = bold_itatic_24_font
#上面的代码指定了等线24号加粗斜体,字体颜色红色。直接使用cell的font属性,将Font对象赋值给它。

#对齐方式:
# 设置B1中的数据垂直居中和水平居中
sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')
#上面代码直接使用cell的属性aligment,这里指定垂直居中和水平居中。

#设置行高和列宽:
# 第2行行高
sheet.row_dimensions[2].height = 40
# C列列宽
sheet.column_dimensions['C'].width = 30

4.最后保存文件

sheet.save(path)

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
whosechobits + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bzqzone 发表于 2020-6-24 19:40
正好在用。及时雨!
wysyz 发表于 2020-6-24 20:24
vethenc 发表于 2020-6-24 21:00
MOEYU_VANILLA 发表于 2020-6-24 21:06
感谢分享
whosechobits 发表于 2020-6-24 21:07
点赞 收藏 关闭  一气呵成
gaoxiaoao 发表于 2020-6-24 21:32
vba不香吗,不用装ide,不用下载库。
N2020 发表于 2020-11-18 23:30
vba与openpyxl,哪个简单好学?哪个功能强大?初中文化学哪个见效快?主要是处理excel学哪个好?
多谢!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表