美文网首页
Python读写excel库——openpyxl

Python读写excel库——openpyxl

作者: libdream | 来源:发表于2018-11-20 14:01 被阅读0次

    openpyxl只能操作.xlsx文档,所以在使用该模块前必须把.xls另存为.xlsx格式。

    openpyxl的安装和导入

    pip install openpyxl    #命令行下输入
    import openpyxl    #导入模块
    

    openpyxl的常用读取

    >>> wb = openpyxl.load_workbook('example.xlsx')    #打开excel工作簿
    >>> sheet_names = wb.sheetnames  #获取工作簿中所有表名,返回表名的列表
    >>> ##['sheet1', 'Sheet2', 'Sheet3']
    
    #读取工作表及表属性
    >>> sheet = wb['sheet1']    #读取工作表sheet1
    >>> sheet.max_row  #获取最大行数
    >>> sheet.max_column    #获取最大列数
    >>> sheet.title  #获取表名
    >>> ##'sheet1'
    >>> wb.active    #获取当前工作簿的活动表
    >>> ##<Worksheet "Sheet3">
    
    #读取单元格
    >>> sheet['A1']  #读取单元格A1,返回一个cell对象
    >>> ##<Cell 'sheet1'.A1>
    >>> sheet['A1'].value  #获取单元格A1的值
    >>> ##'序号'
    >>> sheet1.cell(row=1, column=2)  #获取第1行第2列的单元格
    >>> ##<Cell 'sheet1'.B1>
    >>> sheet1.cell(row=1, column=2).value   #获取第1行第2列的单元格的值
    >>> ##'学校名称'
    
    #遍历单元格
    wb = openpyxl.load_workbook('example.xlsx')
    sheet = wb['sheet1']
    
    for i in range(3,18,2):    #遍历某一列单元格
        print(sheet.cell(row=i, column=2).value) #从第3行第2列开始打印,步长2
    
    for rows in sheet['A1':'C3']:    #遍历矩形范围内单元格
        for col in rows:
            print(col.coordinate, col.value)    #打印单元格坐标和值
    
    image.png
    #创建和保存excel
    wb = openpyxl.Workbook()    #创建工作簿
    sheet = wb.acitve    #获取当前工作表
    sheet.title = 'newname'  #为工作表改名为‘newname’
    
    wb.create_sheet('other')  #创建一个新的工作表,名为'other'
    wb.create_sheet(index=0, title='First Sheet')  #在最开始处创建工作表,名为‘First Sheet’
    wb.create_sheet(index=2, title='Middle Sheet')  #在第3个位置创建表,名'Middle Sheet'
    wb.save('D:/test.xlsx')    #在D盘根目录下保存工作簿,名为“test.xlsx”
    
    image.png
    #两种方法删除工作表
    wb = openpyxl.load_workbook('D:/test.xlsx')
    
    wb.remove(wb['other'])    #删除工作表‘other’
    del wb['Middle Sheet']    #删除工作表'Middle Sheet'
    
    wb.save('D:/test.xlsx')   #最后要保存一下
    
    image.png
    #单元格写入值
    wb = openpyxl.load_workbook('D:/test.xlsx')
    sheet = wb['First Sheet']
    
    sheet['A1'] = 'hello'    #A1单元格写入'hello'
    sheet['B1'] = 'world'  #B1单元格写入'world'
    
    s = 'helloworld'  
    for i in range(2,12):
        sheet.cell(row=i, column=1).value = s[i-2]  #遍历字符串s,从第2行第1列开始竖向写入
    
    wb.save('D:/test.xlsx')
    
    image.png

    相关文章

      网友评论

          本文标题:Python读写excel库——openpyxl

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