【干货】Python中load_workbook用法(持续更新)

【干货】Python中load_workbook用法(持续更新)

  • 功能
  • 方法
    • 示例文件
    • 模块读取
    • 导入excel表格
    • 获取Sheet
    • 查看行与列
    • 查看单元格
    • 批量访问数据

功能

读取excel文件,并进行操作

方法

示例文件

本文用到的示例文件为一个excel表格,含有名为“电子信息1班”和“电子信息2班”两个Sheet。其内容均为成绩单。
【干货】Python中load_workbook用法(持续更新)_第1张图片

模块读取

>>> from openpyxl import load_workbook

导入excel表格

使用load_workbook('表名.xlsx')导入excel表格:

>>> wb = load_workbook("电信成绩单.xlsx")
>>> wb
<openpyxl.workbook.workbook.Workbook at 0x1ad7ad45ac8>

经过测试发现,active默认首先展示的似乎是,保存excel的时候最后点开的那个Sheet,而非默认展示表格里的第一个Sheet。因此,这里我们显示的是第二个Sheet“电子信息2班”:

>>> ws = wb.active
>>> ws
<Worksheet "电子信息2班">

既然如此,就用第二个sheet作为示例吧!

获取Sheet

  1. 使用get_sheet_by_name('表名')获取指定的表:
>>> wb.get_sheet_by_name('电子信息1班')
<Worksheet "电子信息1班">
  1. 使用get_sheet_names()直接获取全部表名,输出为list形式:
>>> sheet_name = wb.get_sheet_names()
>>> sheet_name
['电子信息1班', '电子信息2班']

查看行与列

  1. 查看最大行数:
>>> row_num = ws.max_row
>>> row_num
5
  1. 查看最大列数:
>>> col_num = ws.max_column
>>> col_num
3

查看单元格

  1. 查看A1单元格的内容:
>>> a1 = ws['A1'].value
>>> a1
'成绩单'

查看A1单元格显示的是“成绩单”,但是A1B1C1被我合并为了一个单元格,是否查看B1C1同样也是返回“成绩单”呢?
【干货】Python中load_workbook用法(持续更新)_第2张图片
然而,查看B1、C1,显示的为None。看来,合并后的单元格只能默认使用其第一个小单元格地址来查询。

>>> b1 = ws['B1'].value
>>> print(b1)
None
>>> c1 = ws['C1'].value
>>> print(c1)
None
  1. 查看第二行第一列的内容:
>>> b = ws.cell(row = 2,column = 1).value
>>> b
'名字'

批量访问数据

>>> ws.rows
<generator object Worksheet._cells_by_row at 0x000001CDD21BD3B8>
>>> ws.columns
<generator object Worksheet._cells_by_col at 0x000001CDD21BD048>
  1. 按行访问数据:
>>> lst = []
>>> for row in ws.rows:
>>>		for col in row:
>>>        	lst.append(col.value)
>>> print(lst)
['成绩单', None, None, '名字', '体育', '系统控制', '小刘', 90, 50, '小朱', 70, 80, '小孙', 60, 20]
  1. 按列访问数据:
>>> lst = []
>>> for col in ws.columns:
>>> 	for row in col:
>>>     	lst.append(row.value)
>>> print(lst)
['成绩单', '名字', '小刘', '小朱', '小孙', None, '体育', 90, 70, 60, None, '系统控制', 50, 80, 20]

你可能感兴趣的:(Python干货,python)