zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/hancece/p/11082369.html
Copyright © 2011-2022 走看看