• 您当前位置:网站首页 >> Python学习 >> Python 使用openpyxl模块打开和读取 Excel 表格内容
  • Python 使用openpyxl模块打开和读取 Excel 表格内容

    iCoA首席特工 逍遥峡谷 发布:2019-12-24 更新:2020-01-04 浏览0条评论
    内容简介

    相关关键词:Python   openpyxl   Excel   表格  

    本文链接:https://www.icoa.cn/a/884.html

    本站文章如非注明皆为原创,未经允许禁止转载。如有问题可以给我留言或发邮件。

    Python 可以使用第三方模块openpyxl来处理 Excel 表格。

    openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/

    安装 openpyxl 模块

    Windows 用户使用命令行输入下面命令回车:

    pip install openpyxl

    还可以使用豆瓣的源,安装速度更快一些,可以用下面命令:

    pip install openpyxl -i https://pypi.douban.com/simple

    Mac 用户使用终端输入下面命令回车:

    pip3 install openpyxl


    Excel 表格基本术语

    row 行,以数字表示,从1开始
    column 列,以字母表示,从A开始
    cell 单元格
    sheet 工作表


    打开 Excel 表格并读取工作表名称

    需要用 load_workbook() 方法打开一个已存在的表格,用 .sheetnames 来读取其中工作表的名称。

    # 引入load_workbook
    from openpyxl import load_workbook
    e_xlsx = load_workbook('top10.xlsx')
    print(e_xlsx.sheetnames)
    # 运行结果:['Sheet1', 'Sheet2']


    有了工作表名称之后,就可以打开相应的工作表

    e_xlsx = load_workbook('demo.xlsx')
    # 读取工作表 Sheet1 的内容,工作表名大小写敏感,一定要注意
    s1 = e_xlsx['Sheet1']
    # 输出工作表 Sheet1 的尺寸
    print(s1.dimensions)
    # 运行结果:A1:C10


    读取工作表中某个单元格的内容

    sheet['A1'] 打开相应工作表的A1单元格

    cell.value 输出单元格的值(内容)

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx['Sheet1']
    cell = s1['A1']
    print(cell.value)
    # 运行结果:第1行第一列

    如果表格中只有一个工作表,或者想打开默认工作表,则可以用.active 打开。

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    cell = s1['A1']
    print(cell.value)
    # 运行结果:第1行第一列


    输出工作表中某个单元格的行、列和坐标

    cell.row 行,cell.column 列,cell.coordinate 坐标

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    cell = s1['B5']
    print(f'{cell.row}行\n{cell.column}列\n坐标是{cell.coordinate}')
    ''' 输出结果:
    5行
    2列
    坐标是B5'''


    通过第几行和第几列定位单元格

    sheet.cell(行数,列数)  可以读取相应行数和列数对应的单元格

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    cell = s1.cell(5,3)
    print(f'{cell.coordinate}的内容是{cell.value}')
    # 输出结果:C5的内容是第5行第三列


    获取某个范围内的单元格

    sheet['A1':'A5'] 可以获取从A1到A5的单元格

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    cells = s1['A1':'A5']
    print(cells)
    # 输出结果是一个元组:
    # ((<Cell 'Sheet1'.A1>,), (<Cell 'Sheet1'.A2>,), (<Cell 'Sheet1'.A3>,), (<Cell 'Sheet1'.A4>,), (<Cell 'Sheet1'.A5>,))

    sheet['A':'C'] 可以获取从A列到C列的单元格

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    cells = s1['A':'C']
    print(cells)

    输出结果:

    ((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>, <Cell 'Sheet1'.A4>, <Cell 'Sheet1'.A5>, <Cell 'Sheet1'.A6>, <Cell 'Sheet1'.A7>, <Cell 'Sheet1'.A8>, <Cell 'Sheet1'.A9>, <Cell 'Sheet1'.A10>), (<Cell 'Sheet1'.B1>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.B5>, <Cell 'Sheet1'.B6>, <Cell 'Sheet1'.B7>, <Cell 'Sheet1'.B8>, <Cell 'Sheet1'.B9>, <Cell 'Sheet1'.B10>), (<Cell 'Sheet1'.C1>, <Cell 'Sheet1'.C2>, <Cell 'Sheet1'.C3>, <Cell 'Sheet1'.C4>, <Cell 'Sheet1'.C5>, <Cell 'Sheet1'.C6>, <Cell 'Sheet1'.C7>, <Cell 'Sheet1'.C8>, <Cell 'Sheet1'.C9>, <Cell 'Sheet1'.C10>))

    sheet[1:4] 可以获取从1行到4行的单元格

    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    cells = s1[1:4]
    print(cells)

    输出结果:

    ((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>), (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>), (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>), (<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>))


    另外还可以用 sheet['B'] 获取B列的单元格,sheet[3] 获取第3行的单元格。


    .iter_rows(min_row=最低行,max_row=最高行,min_col=最低列,max_col=最高列) 获取指定行列范围之间的单元格

    # 指定行列范围,以行读取
    from openpyxl import load_workbook
    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    for row in s1.iter_rows(2,5,1,3):
        print(row)

    输出结果:

    (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)

    (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>)

    (<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>)

    (<Cell 'Sheet1'.A5>, <Cell 'Sheet1'.B5>, <Cell 'Sheet1'.C5>)


    同理 .iter_cols() 是以列返回指定范围的单元格。


    .rows 可以返回整个表格所有的行

    from openpyxl import load_workbook
    e_xlsx = load_workbook('demo.xlsx')
    s1 = e_xlsx.active
    for row in s1.rows:
        print(row)

    相关 Python 学习日志:

    Python 基础知识:

    利用 Python 处理文件和文件夹:

    Python 自动化处理 Excel 表格

    ......

    其他:Python 第三方模块和安装方法


    本文链接:https://www.icoa.cn/a/884.html
    关键词: Python   openpyxl   Excel   表格  


    如果您愿意支持本站,欢迎点击打赏哦~



    下一篇:Python 使用openpyxl模块编辑 Excel 表格

    上一篇:Python 读取、创建和解压zip压缩包文件


    - 相关文章 -


    Python 数字与数字型运算 - 2020-09-08

    Python 基础知识之数据类型 - 2020-09-07

    Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07

    Python 基础知识之变量 - 2020-09-03

    Python 详细安装步骤图解 - 2020-09-01

    Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09

    Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05

    Python 数据分析第三方库 Numpy 的安装和使用 - 2020-02-03


    - 文章评论 -




    0866

    [由于政策原因,您的留言如果提交成功后,需要审核才能展示,请改天再来查看,请不要重复提交,谢谢支持!]

    - 最新评论[0条评论] -


    [>>>点击查看更多评论]

    版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 | 逍遥峡谷 · 酷品优选
    Copyright©Interstellar Central Occult Agency (I.C.O.A)
    本局纯属虚构,如有雷同,纯属巧合

    冀公网安备13011102001055号 · 冀ICP备06033848号