• python之操作excel:xlrd、xlwt、xlutiles、枚举函数enumerate()


    一、读excel: xlrd-----只能读、不能写

    import xlrd
    book=xlrd.open_workbook(r'E:BestTest内容名单.xlsx')   #打开excel
    sheet=book.sheet_by_index(0)  #通过索引定位是第一个sheet页
    sheet2=book.sheet_by_name("作业") #通过名字定位sheet
    sheet.row_values(0)   #获取某一行的数据,索引从0开始,0代表第一行
    
    sheet.col_values(1)  #获取某一列的数据,索引从0开始
    
    sheet.cell(0,1).value  #获取某个单元格的内容,索引从0开始,(行,列),(0,0)代表第1行,第1列
    
    sheet.nrows  #获取总行数
    sheet.ncols  #获取纵列数

    二、写入excel:xlwt ——只能新建一个excel,往里面写内容,不是修改

    book=xlwt.Workbook()
    sheet=book.add_sheet('人员名单')
    sheet.write(0,0,'姓名)
    sheet.write(0,1,'学习形式')
    sheet.write(1,0,'xiaohei')        #(行,列,内容)
    sheet.write(1,1,'现场')
    #写完要保存:
    book.save('E:BestTest上课内容student.xls')
    # 保存时,如果用的是微软的office,后缀要用.xls
    # 如果是wps,就用.xls  .xlsx

    练习:list中每个元素写进表格中

    方法一:

    list=[
        [1,'han','1361111111'],
        [2, 'xiaoming', '1361111111'],
        [3, 'xiaohei2', '1361111111'],
        [4, '小白', '1361111111']
          ]
    row=1   #定义行号,空出表头,从第二行,第一列开始写
    for row_data in list:
        col=0
        for col_data in row_data:
            sheet.write(row,col,col_data)
            col+=1
         row+=1
    book.save('test.xls')

    方法二:使用枚举函数:enumerate()

    for row,row_data in enumerate(list,1)   #取list中下标和元素,下标定义初始索引是1
        print(row,row_data)  
        for col,col_data in enumerate(row_data)  #不传索引初始值,默认从0开始
            print(col,col_data)
            sheet.write(row,col,col_data)
    book.save('test1.xls')

    三、 修改excel

    from xlutils import copy
    import xlrd   #两个模块配合才能修改
    #操作步骤:
    #1打开一个excel
    #2复制一份
    #3修改
    book=xlrd.open_workbook('test.xls')  #可写绝对路径
    new_book=copy.copy(book)
    print(dir(new_book))    #查看new_book可做的操作
    sheet=new_book.get_sheet(0)  #定位sheet页,xlutils中的定位sheet的方法不同于xlrd
    title=['id','name','phone']
    for col,t in enumerate(title):
        sheet.write(0,col,t)
    new_book.save('test.xls')     #运行是文件不能是打开的状态,否则会报错

     四、枚举函数:enumerate(list)

    list=['xiaomingn','xiaohei','xiaobai']
    num=1
    for i in list:
        print("编号:%s-->%s"%(num,i))
        num+=1
    #同下:
     #enumerate(list):循环时,同时循环下标和元素   enumerate(list,1)    #可指定从几开始,1,2,3,……如果不指定是默认从零开始,0,1,2,……
     for count,value in enumerate(list,1) print("编号:%s-->%s"%(count,value))
  • 相关阅读:
    C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
    Path.Combine (合并两个路径字符串)方法的一些使用细节
    taskkill /f /im的应用
    powersheel远程连接方法操作
    Centos 定时任务发送smtp邮件
    Centos 发送smtp邮件
    在 Windows 上安装Rabbit MQ 指南
    Quartz.NET总结(五)基于Quartz.net 的开源任务管理平台
    Quartz.NET总结(四)Quartz 远程调度
    Quartz.NET总结(三)Quartz 配置
  • 原文地址:https://www.cnblogs.com/hancece/p/11082369.html
Copyright © 2020-2023  润新知