python excle操作
上一篇 /
下一篇 2021-01-15 16:20:31
/ 个人分类:python
openpyxl:专门用于excle表格的读取和写入,读取内容并不是这个库的优势,而且还有一点麻烦,最大的优势是该库是可以设置单元格格式以及定义各种格式,这对有格式要求的就有一定优势了,支持xlsx(xlrd库就不支持读取xlrd)。
- 安装
pip install openpyxl
- 创建实例
通过 from openpyxl import load_wordbook,Workbook 进行导入库,load_wordbook模块是针对于已存在的excle的,而Workbook则是用来创建新的excle的。
wb = load_workbook("文件地址") 或者 wb = Wordbook()
- 选择表单
如果选择默认的工作表:ws = wb.active
如果选择对应的名称的工作表:ws = wb["表名"]
创建工作表:ws = wb.create_sheet("表名",0) #可通过下标数定义创建的工作表的位置
获取所有的工作表的名称:print(wb.sheetname)
修改工作表的名称:ws.title = "表名"
复制工作表:ws1 = wb.copy_worksheet(ws) (注意被编辑的文件权限,如果是只读则无法复制)
- 访问单元格(访问和读取是两个东西,访问只是创建一个对应单元格的对象,返回值里没有单元格内容的,但是所有的修改、定义单元格格式都是需要通过这个对象去实现的)
访问单个单元格: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
- 插入单元格
插入一行单元格:ws.insert_rows(需要插入的位置,需要插入的行数)
插入一列单元格:ws.insert_rows(需要插入的位置,需要插入的行数)
删除一行单元格:ws.delete_rows(需要删除的位置,需要删除的行数)
删除一列单元格:ws.delete_rows(需要删除的位置,需要删除的行数)
移动单元格:ws.move_range("需要移动的左上角单元格:需要移动的右下角单元格",rows=移动的行数,cols=移动的列数) #移动的数量如果为整数则往右移动,如为负数则往左移动如果单元格包含公式,则可通过translate=True进行是否被翻译操作
- 合并单元格
合并单元格: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)
- 插入图片(该功能需要导入 from openpyxl.drawing.image import Image)
img = Image("文件路径")
ws.add_image(img,"单元格位置")
- 折叠(轮廓)
ws.column_dimensions.group('A','D', hidden=True)
ws.row_dimensions.group(1,10, hidden=True)
收藏
举报
TAG: