python excle操作

上一篇 / 下一篇  2021-01-15 16:20:31 / 个人分类:python

openpyxl:专门用于excle表格的读取和写入,读取内容并不是这个库的优势,而且还有一点麻烦,最大的优势是该库是可以设置单元格格式以及定义各种格式,这对有格式要求的就有一定优势了,支持xlsx(xlrd库就不支持读取xlrd)。
  1. 安装
    pip install openpyxl

  2. 创建实例
    通过  from openpyxl import load_wordbook,Workbook  进行导入库,load_wordbook模块是针对于已存在的excle的,而Workbook则是用来创建新的excle的。
    wb = load_workbook("文件地址")  或者    wb = Wordbook()

  3. 选择表单
    如果选择默认的工作表:ws = wb.active
    如果选择对应的名称的工作表:ws = wb["表名"]
    创建工作表:ws = wb.create_sheet("表名",0)   #可通过下标数定义创建的工作表的位置
    获取所有的工作表的名称:print(wb.sheetname)
    修改工作表的名称:ws.title = "表名"
    复制工作表:ws1 = wb.copy_worksheet(ws)  (注意被编辑的文件权限,如果是只读则无法复制)

  4. 访问单元格(访问和读取是两个东西,访问只是创建一个对应单元格的对象,返回值里没有单元格内容的,但是所有的修改、定义单元格格式都是需要通过这个对象去实现的)
    访问单个单元格:ws["单元格位置"]  #单元格位置传入例如"A1"的位置参数
    访问单个单元格:ws.cell(row=4,column=2,value=10)
    修改单个单元格内容:ws["单元格位置"] = "修改的内容"
    读取单个单元格内容:ws["单元格位置"].value
    访问多个单元格:ws["需访问的左上角单元格位置":"需访问的右下角单元格位置"]
    访问一列的单元格:ws["列名"]
    访问多列的单元格:ws["第一列列名":"最后一列列名"]  #ws["A":"B"]
    访问多列的单元格:ws.iter_rows(min_row=1,max_col=3,max_row=2)
    访问一行的单元格:ws["行号"]
    访问多行的单元格:ws["第一行行号":"最后一行行号"] #ws[1:2]
    获取工作表最大列:ws.max_row
    获取工作表最大行:ws.max_column
    获取所有行列的单元格对象:ws.rows
    显示数字格式:ws.number_format

  5. 插入单元格
    插入一行单元格:ws.insert_rows(需要插入的位置,需要插入的行数)
    插入一列单元格:ws.insert_rows(需要插入的位置,需要插入的行数)
    删除一行单元格:ws.delete_rows(需要删除的位置,需要删除的行数)
    删除一列单元格:ws.delete_rows(需要删除的位置,需要删除的行数)
    移动单元格:ws.move_range("需要移动的左上角单元格:需要移动的右下角单元格",rows=移动的行数,cols=移动的列数)  #移动的数量如果为整数则往右移动,如为负数则往左移动如果单元格包含公式,则可通过translate=True进行是否被翻译操作

  6. 合并单元格
    合并单元格:ws.merge_cells("左上角单元格":"右下角单元格")
      ws.merge_cells(start_row=1,start_column=1,end_row=4,end_column=4)

    取消单元格:ws.unmerge_cells("左上角单元格":"右下角单元格")
      ws.unmerge_cells(start_row=1,start_column=1,end_row=4,end_column=4)

  7. 插入图片(该功能需要导入  from openpyxl.drawing.image import Image
    img = Image("文件路径")
    ws.add_image(img,"单元格位置")

  8. 折叠(轮廓)
    ws.column_dimensions.group('A','D', hidden=True)
    ws.row_dimensions.group(1,10, hidden=True)



TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2021-02-26  
 123456
78910111213
14151617181920
21222324252627
28      

数据统计

  • 访问量: 302
  • 日志数: 3
  • 建立时间: 2020-12-22
  • 更新时间: 2021-01-29

RSS订阅

Open Toolbar