Python操作Excel表格(一)

基于openpyxl实现几个常用的excel自动化操作函数,具体功能包括查询表的规模、获取指定单元格的数据、获取行、列数据、查询表头、搜索某列包含关键词的所有行数据,后续将继续补充和加强功能实现

#!/bin/usr/python3
# author:zhouzhuo
# create time: 2020/09/05

'''
该模块用于对excel表格操作,具体功能包括查询表的规模、获取指定单元格的数据、获取行、列数据
查询表头、搜索某列包含关键词的所有行数据
'''
import openpyxl

#指定文件位置和sheet,返回sheet对象
def get_sheet(excel_path, sheet_name):
    work_book = openpyxl.load_workbook(excel_path)
    work_sheet = work_book.get_sheet_by_name(sheet_name)
    return work_book,work_sheet

#获取sheet的行列规模
def get_sheet_scale(work_sheet):
    return work_sheet.max_row,work_sheet.max_column

#获取指定sheet页面的指定行列值
def get_cell_value(work_sheet,row,column):
    return work_sheet.cell(row=row,column=column).value

#获取指定sheet的指定行的数据,支持取值起始位置和跳跃步长取值
def get_row_data(work_sheet,row,begin=2,step=1):
    row_data = []
    max_column = work_sheet.max_column
    for col in range(begin,max_column+1,step):
        row_data.append(work_sheet.cell(row=row,column=col).value)
    return row_data

#获取指定sheet的指定列的数据,支持取值起始位置和跳跃步长取值
def get_column_data(work_sheet,column,begin=2,step=1):
    column_data = []
    max_row = work_sheet.max_row
    for r in range(begin,max_row+1,step):
        column_data.append(work_sheet.cell(row=r,column=column).value)
    return column_data

# 获取sheet的表头(列名)
def get_tile(work_sheet):
    return get_row_data(work_sheet,1)

# 在指定行插入一行数据,默认插入末尾
def insert_row_data(work_sheet,rowdata,index=-1):
    if(index == -1 or index == work_sheet.max_row+1):
        work_sheet.append(rowdata)
    else:
        work_sheet.insert_rows(index)
        for col in range(1,work_sheet.max_column+1):
            work_sheet.cell(row = index,column=col,value=rowdata[col-1])

# 搜索指定列中包含关键词的所有行数据
def search_info_by_column(work_sheet,column,key):
    column_data = get_column_data(work_sheet,column)
    print(column_data)
    info = []
    count = column_data.count(key)
    if (count >= 1):
        for i in range(len(column_data)):
            if (column_data[i]==key):
                info.append(get_row_data(work_sheet, i + 2))
    return info


if __name__ == '__main__':
    wb,ws1 = get_sheet('data.xlsx','Sheet1')
    scale = get_sheet_scale(ws1)
    #print(get_column_data(ws1,2))
    print(search_info_by_column(ws1,3,'赵庆'))

   # print(get_column_data(ws1,column=1,begin=2,step=2))
    #rowdata = ['414001','湖南省长沙市','李四','先生']
   # insert_row_data(ws1,rowdata)
  #  print(get_tile(ws1))

    #wb.save('data.xlsx')

测试表格数据源data.xlsx:

邮编    收信人地址    收信人姓名    称谓
475443    北京市海淀区186号    王霞    女士
461400    太康县中心小学    赵龙    先生
464100    河南郑州二七路33号    王凤    女士
100081    北京市海淀区学院路88号    赵庆    先生
Python操作Excel表格第二弹已更新

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值