美文网首页
python-openpyxl常用方法

python-openpyxl常用方法

作者: 万疆璃火 | 来源:发表于2020-11-26 11:31 被阅读0次

    参考文档:https://segmentfault.com/a/1190000022194006
    https://www.jianshu.com/p/3f348b7552a7

    使用openpyxl创建一个数据表
    ''' 使用openpyxl创建一个数据表'''
    from openpyxl import Workbook,load_workbook
    
    wb = Workbook()        '''创建一个全新的工作簿'''
    
    ws = wb.active         '''获取当前的工作sheet,即上一步创建的工作表中的sheet,默认获取第一个sheet'''
    print(wb)
    print(wb.sheetnames)    '''获取工作簿的所有sheetname'''
    
    wb.save(r"E:\工作\test\openpyxl_test.xlsx")      '''保存到指定路径指定文件名'''
    
    创建新的sheet
    '''创建新的sheet'''
    
    wb.create_sheet()   '''默认创建一个sheet,默认命名为sheet1,sheet2...'''
    
    '''创建一个名字为sheet的sheet页,但是如果已经存在此名字的sheet则会命名为sheet1,sheet2...'''
    wb.create_sheet("sheet")  
    
    '''创建一个名为"mysheet"的sheet,0代表在最前端创建,成为第一个sheet页'''
    wb.create_sheet("mysheet",0) 
    
    '''创建一个名为"mysheet"的sheet,-1代表在倒数第二个位置创建,成为倒数第二个sheet页'''
    wb.create_sheet("mysheet",-1)
    
    更改原有的sheet名
    '''首先需要在创建新的sheet时给他一个返回接收值'''
    ws = wb.creat_sheet("new_sheet")
    '''然后使用title方法更改sheet名'''
    ws.title = "new_name"
    '''此时的sheetname为[new_name]'''
    
    copy一个sheet
    print("你可以遍历整个工作簿。。。")
    for sheet in wb:
        '''copy指定的sheet只有单元格(包括值、样式、超链接、备注)
          和一些工作表对象(包括尺寸、格式和参数)会被复制。
          其他属性不会被复制,如图片、图表。无法在两个工作簿中复制工作表。
          当工作簿处于只读或只写状态时也无法复制工作表。'''
        target = wb.copy_worksheet(sheet) 
        print("sheet_name:"+sheet.title)
    print("sheetname:{}".format(wb.sheetnames))    
    print('创建所有表的副本。。。')
    
    加载原有的工作簿
    '''加载原有的工作簿'''
    wb2 = load_workbook(r"E:\工作\test\openpyxl_test.xlsx")
    print("sheetname:{}".format(wb.sheetnames))
    
    对数据进行操作
    '''对数据进行操作'''
    print("通过sheet名获取sheet。。。")
    ws2 = wb["title"]
    print(ws2)
    print("访问一个单元格,此时c为A4处单元格对象,并非单元格内的值如果此单元格尚未存在则会创建一个,
            访问即创建,所以可以直接赋值。。。")
    c = ws2["A4"]
    print('给单元格赋值。。。')
    ws2["A4"] = 4
    print(c)
    '''保存,如果不保存赋值的数据将不会出现在数据表中'''
    wb.save(r"E:\工作\test\openpyxl_test.xlsx")
    print("通过行列号访问单元格,设置value则值为value的值,没有则为数据表中原有值。。。")
    d = ws2.cell(row=4,column=1,value=10)
    print(d)
    wb.save(r"E:\工作\test\openpyxl_test.xlsx")
    
    
    print("可以通过切片获取多个单元格。。。")
    range = ws2['A1':'C2']
    print(range)
    
    print("获取A列数据。。。")
    range = ws2['A']
    print(range)
    
    print("获取A列和B列数据。。。")
    range = ws2['A':'B']
    print(range )
    
    print("获取第4行数据。。。")
    range = ws2[4]
    print(range)
    
    print("获取第4行和第5行数据。。。")
    range = ws2[4:5]
    print(range)
    
    Worksheet.iter_rows() and Worksheet.iter_cols()
    print('使用Worksheet.iter_rows()方法获取指定范围内的行')
    for rows in ws2.iter_rows(min_row=2, min_col=2,max_col=3, max_row=3):#起始行,起始列,结束列,结束行
        print(rows)
    
    print('使用Worksheet.iter_cols()方法获取指定范围内的列')
    for rows in ws2.iter_cols(min_row=2, min_col=2,max_col=3, max_row=3):#起始行,起始列,结束列,结束行
        print(rows)
    
    image.png
    print('获取所有的行和列。。。。')
    ws2['C9'] = 'hello world'
    print(tuple(ws2.rows))
    
    print(tuple(ws2.columns))
    
    print('获取单元格的值...')
    for row in ws2.values:
        for i in row:
            print("value....")
            print(i)
            
    print('使用Worksheet.iter_rows()方法获取指定范围内的行,只返回单元格的值。。。')
    for rows in ws2.iter_rows(min_row=2, min_col=2,max_col=4, max_row=10,values_only=True):#起始行,起始列,结束列,结束行
        print(rows)
        
    print('使用Worksheet.iter_cols()方法获取指定范围内的列,只返回单元格的值。。。')
    for rows in ws2.iter_cols(min_row=2, min_col=2,max_col=4, max_row=10,values_only=True):#起始行,起始列,结束列,结束行
        print(rows)
        
    print("通过行列号访问单元格。。。")
    d = ws2.cell(row=4,column=1)
    print(d)
    print('给单元格赋值。。。')
    d.value = '3.1415926'
    print('获取指定单元格的值。。。')
    for rows in ws2.iter_rows(min_row=4, min_col=1,max_col=1, max_row=4,values_only=True):#起始行,起始列,结束列,结束行
        print(rows)
    

    相关文章

      网友评论

          本文标题:python-openpyxl常用方法

          本文链接:https://www.haomeiwen.com/subject/djlaiktx.html