Python学习—对excel表格的操作

发布时间:2019-09-11 07:42:51编辑:auto阅读(1842)

    安装对excel操作的模块:openpyxl

    1.excel中的基本定义

    • 工作簿(workbook):整个excel表哥文件称为一个工作簿
    • 工作表(sheet):一个工作簿中有多个工作表
    • 活动表(active sheet):保存文件时候停留在那个表,那个表就被称为活动表
    • 行(row): 1,2,3,4,5,6........
    • 列(column): A,B,C,D......
    • 单元格(cell); B1,C1,C5......

    例子1

    import openpyxl
    
    #打开一个excel文档
    wb = openpyxl.load_workbook('/home/kiosk/Desktop/student.xlsx')
    
    print(wb)
    print(type(wb))
    #查看工作簿的所有工作表
    print(wb.sheetnames)
    #查看当前活动表
    print(wb.active)
    """
    运行结果:
    <openpyxl.workbook.workbook.Workbook object at 0x7fd69d613278>
    <class 'openpyxl.workbook.workbook.Workbook'>
    ['学生表', 'Sheet2', 'Sheet3']
    <Worksheet "Sheet3">
    """
    
    #选择要操作的工作表,返回工作表对象
    sheet = wb['学生表']
    print(wb.active)
    #获取工作表的名称
    print(sheet.title)
    """
    运行结果:
    <Worksheet "Sheet3">    #这里可以看到,活动表还是Sheet3,它并没有因为选择了其他操作的工作表而改变
    学生表
    """
    
    cell = sheet['B1']
    print(cell)
    print(cell.row,cell.column)
    print(cell.value)
    """
    运行结果:
    <Cell '学生表'.B1>
    1 B
    张三
    """

    实例2
    有excel表格文件如下:
    Python学习—对excel表格的操作
    将表格数据读出,按B列的数据从小到大排序后写入文件stores.txt

    import openpyxl
    
    def readwb(wbname,sheetname=None):
        li = []
        wb = openpyxl.load_workbook(wbname)
        if not sheetname:
            sheet = wb[wb.active.title]
        else:
            sheet = wb[sheetname]
        for row in sheet.rows:
            row_li = [cell.value for cell in row]
            li.append(row_li)
        return li
    
    s = input('请输入工作簿名字 工作表名字(默认为活动表):').split()
    
    if len(s) == 1:
        li = readwb(s[0])
    else:
        li = readwb(s[0],s[1])
    
    li = sorted(li,key=lambda x:x[1])
    with open('stores.txt','w') as f:
        for i in li:
            f.write(i[0]+':'+str(i[1])+':'+str(i[2])+'\n')
    

    结果截图
    Python学习—对excel表格的操作

关键字