Python操作Excel库(xlrd、openpyxl)

常用操作Excel库

一、xlrd

  1. Workbook对象

    wb = xlrd.open_workbook(filename)

    下面为Workbook对象的常用方法/属性:

    方法/属性返回值返回类型
    nsheets表单总数量int
    sheet_names()所有表单名称list[str]
    sheet_by_index(idx: int)Sheet对象Sheet对象
    sheet_by_name(sheet_name: str)Sheet对象Sheet对象
    sheets()所有Sheet对象list[Sheet对象]
  2. Sheet对象

    通过上面的Book对象的方法来获取对应Sheet对象,如sheet = book.sheet_by_index(0)

    下面为Sheet对象的常用方法/属性:

    (注意:行号、列号从0开始计,并且单元格内容为数字时,返回的都是float类型)

    方法/属性返回值返回类型
    nrows表单总行数int
    ncols表单总列数int
    name表单名称str
    number表单列表里的索引int
    cell_value(rowx: int, colx: int)获取指定单元格的值str/float
    row_value(rowx: int, start_colx: int, end_colx: int)获取某一行的指定列(默认为整列)的值list
    col_value(colx: int, start_rowx: int, end_rowx: int)获取某一列的指定行(默认为整行)的值list

二、openpyxl

  1. Workbook对象

    wb = openpyxl.load_workbook(filename) # 读文件

    wb = openpyxl.Workbook() # 写文件,创建一个新Workbook对象

    注意:openpyxl只能读或写xlsx类型的,对于老版Excel的xls格式是无法处理的

    下面为Workbook对象的常用方法/属性:

    方法/属性返回值返回类型
    active创建新Workbook对象都会新建一个Worksheet对象,可以通过这个active来获取(如果是读,则默认是第一个Worksheet对象)Worksheet对象
    (1) wb[sheet_name]
    (2) get_sheet_by_name(sheet_name: str)
    获取指定Worksheet对象(可以像第一种通过字典取值的方式获取,也可以通过调用函数来获取)Worksheet对象
    (1) sheetnames
    (2) get_sheet_names()
    获取所有Worksheet对象(可以通过属性获取,也可以通过函数获取)list[Worksheet对象]
    create_sheet(title: str, index: int)创建一个新的Worksheet对象(如果index不指定,默认加在最后面)Worksheet对象
    copy_worksheet(Worksheet对象)复制一份指定worksheet(只能复制cells和styles,对于图片等是无法复制的)Worksheet对象
    save()保存None

  2. Worksheet对象

    下面为Worksheet对象的常用方法/属性:

    (注意:行号、列号从1开始计)

    方法/属性返回值返回类型
    title获取表单的名称(如果进行赋值的话,则代表修改表单名称)str
    (1) sh[‘位置’].value
    (2) sh.cell(row: int, column: int) .value
    获取某个单元格的值(第一种通过字典的方式来获取,位置对应excel表格如’A2’,表示第2行第1列;第二种通过行和列来获取)str/int
    (1) sh[‘位置’] = xxx
    (2) sh.cell(row: int, column: int, value=xxx)
    (3) sh.cell(row: int, column: int).value = xxx
    设置某个单元格的值/
    insert_rows(idx: int, amount)在第idx行插入新行(如果amount不指定,默认插入1行;如果指定,则从idx行开始,插入amount行)/
    insert_cols(idx: int, amount)在第idx列插入新列(如果amount不指定,默认插入1列;如果指定,则从idx列开始,插入amount列)/
    delete_rows(idx: int, amount)删除第idx行(如果amount不指定,默认删除1行;如果指定,则从idx行开始,删除amount行)/
    delete_cols(idx: int, amount)删除第idx列(如果amount不指定,默认删除1列;如果指定,则从idx列开始,删除amount列)/

  3. Cell对象

    其实上面的 sh[‘位置’]sh.cell(row: int, column: int) 返回的就是一个Cell对象,除了获取或更改其内容,还可以改变其样式风格(如颜色,字体,大小,对齐方式等)

    import openpyxl
    from openpyxl.styles import Font, colors, PatternFill, Alignment
    from openpyxl.drawing.image import Image
    
    # 1、指定单元格字体颜色,大小,粗体等(修改font属性)
    sh['A1'].font = Font(color=colors.RED, # 使用预置的颜色常量
                         size=15,    # 设定文字大小
                         bold=True,  # 设定为粗体
                         italic=True # 设定为斜体
                        )
    
    # 颜色如果不想使用colors预置的,也可以使用6位RGB数字
    sh.cell(2, 2).font = Font(color="981818")
    
    # 2、修改单元格背景色(修改fill属性)
    sh['A1'].fill = PatternFill("solid", fgColor="E39191")
    
    # 3、修改对齐方式(修改alignment属性)
    # 	horizontal代表水平方向:
    #		左对齐left,居中center,右对齐right,分散对齐distributed
    #		跨列居中centerContinuous,两端对齐justify,填充fill,常规general
    #
    # 	vertical代表垂直方向:
    #		居中center,靠上top,靠下bottom,两端对齐justify,分散对齐distributed
    #
    # 	wrap_text:自动换行,布尔类型的参数,这个参数还可以写作wrapText
    sh['A1'].alignment = Alignment(horizontal='left',vertical='center',wrap_text=True)
    
    # 4、插入图片(注意:这个是通过Worksheet对象调用的,不是Cell对象)
    # 	第一个参数为图片,需要使用Image库来指定图片路径
    #	第二个参数为在哪个单元格插入图片
    sh.add_image(Image('1.png'), 'B2')
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值