• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

PythonExcel和检测合并单元格的方法

武飞扬头像
WSNNNNNNan
帮助1

Python解析扩展名为.xlsx的方法:

1. 导入openpyxl模块

import openpyxl

2. 导入Excel表格文件

使用load_workbook()方法读取Excel文件,该方法返回一个工作簿对象。

load_workbook()方法只能读取已有的Excel表格文件,无法创建新的Excel表格。

  1.  
    # file_path指文件路径
  2.  
    file_path = "example.xlsx"
  3.  
     
  4.  
    # 读取excal
  5.  
    workbook = openpyxl.load_workbook(file_path)

3. 获取Sheet工作表

  1.  
    # 获取指定name的Sheet
  2.  
    sheet = workbook['Sheet1']
  3.  
    sheet = workbook.get_sheet_by_name('Sheet1')
  4.  
     
  5.  
    # 调用get_sheet_names()方法获取所有的sheet工作表名,返回为一个列表
  6.  
    workbook.get_sheet_names()

4. 获取最大行和列

  1.  
    # 获取'Sheet1'工作表中的最大行和列
  2.  
    rows = sheet.max_row
  3.  
    cols = sheet.max_column

5. 获取单元格的值

以该表格为例展开说明:

学新通 

5.1 根据指定坐标获取

  1.  
    # 以Sheet1['B2']单元格为例,获取该单元格的值
  2.  
    cell = sheet['B2']
  3.  
    print(cell.value)
  4.  
     
  5.  
    # 输出结果:100

5.2 根据指定行列获取

  1.  
    # 以(5,2)单元格为例,获取该单元格的值
  2.  
    cell = sheet.cell(row=5, column=2)
  3.  
    print(cell.value)
  4.  
     
  5.  
    # 输出结果:21
  6.  
     
  7.  
     
  8.  
    # 获取该单元格的坐标
  9.  
    print(cell.coordinate)
  10.  
     
  11.  
    # 输出结果:B5

6. 通用方法:获取单元格的值(包括获取合并单元格的值)

解决思路:

获取单元格后,判断该单元格是否为合并单元格,若是,则找到该合并区域并返回其左上角的值。

通过sheet.merged_cell.ranges,可以获取当前工作表所有的合并区域列表。

实例:

  1.  
    from openpyxl.cell import MergedCell
  2.  
     
  3.  
    # 获取Sheet1工作表中的所有合并区域列表
  4.  
    merged_ranges = sheet.merged_cell.ranges
  5.  
     
  6.  
    # 获取单元格的值,若为合并单元格,则返回合并区域左上角的值
  7.  
    def get_cell_val(i, j):
  8.  
    cell = sheet.cell(i, j)
  9.  
    # 判断单元格类型是否为合并单元格
  10.  
    if isinstance(cell, MergedCell):
  11.  
    for merged_range in sheet.merged_cell.ranges:
  12.  
    if cell.coordinate in merged_range:
  13.  
    cell = sheet.cell(row=merged_range.min_row, column=merged_range.min_col)
  14.  
    return cell.value

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghajjb
系列文章
更多 icon
同类精品
更多 icon
继续加载