1.工作簿
1.1工作簿基本操作
1.1.1创建工作簿
import openpyxl工作簿=openpyxl.Workbook('文件名称.xlsx')
1.1.2打开工作簿
工作簿 =openpyxl.load_workbook('文件名称.xlsx')
1.1.3常用方式
import openpyxl#定义路径file1 = r'd:/工作簿1.xlsx'#打开工作簿workbook1 = openpyxl.load_workbook(file1)#指定工作表sheet1 = workbook1['sheet1']#保存到原路径workbook1.save(file1)
1.2方法
| 方法 |
作用 |
| 工作簿.sheetnames |
获取所有表格的名称 |
| 工作簿[‘工作表名’] |
通过表格名称获取Worksheet对象 |
| 工作簿.active |
获取活跃的表格 |
| remove |
删除一个工作表对象【对象】 |
| create_sheet |
创建一个空的表格【表名】 |
| copy_worksheet |
在Workbook内拷贝表格【对象】 |
2.工作表
2.1从工作簿中获取工作表
2.1.1激活第一个工作表
sheet1 = 工作簿.active
2.1.2获取工作簿名称
# 工作表.titleprint (sheet1.title)
2.1.3指定工作表
sheet2 = 工作簿 ['工作表名称']
2.1.4新建指定工作表
sheet3 = 工作簿.create_sheet('sheet3')
2.1.5删除指定工作表
工作簿.remove(sheet3)
2.2 方法
| 属性 |
作用 |
| title |
工作表的名称 |
| dimensions |
表格的大小,这里的大小是指含有数据的表格的大小,即:左上角的坐标:右下角的坐标 |
| max_row |
表格的最大行 |
| min_row |
表格的最小行 |
| max_column |
表格的最大列 |
| min_column |
表格的最小列 |
| rows |
按行获取单元格(Cell对象) - 生成器 工作表.rows |
| columns |
按列获取单元格(Cell对象) - 生成器 工作表.columns |
| freeze_panes |
冻结窗格 工作表.freeze_panes = “C3” |
| values |
按行获取表格的内容(数据) - 生成器 |
| list(工作表.values) |
按行获取工作表所有单元格值,可用[]切片截取某一段数据 |
| iter_rows |
按行获取所有单元格,内置属性有(min_row,max_row,min_col,max_col) |
| iter_columns |
按列获取所有的单元格 |
| append |
在表格末尾添加数据 |
| merged_cells |
合并多个单元格 |
| unmerged_cells |
移除合并的单元格 |
3.单元格
3.1读取单元格
A1单元格的值 = 工作表['A1'].valueA1单元格的值2 = 工作表.cell(1,1).valueA1单元格的列 = 工作表['A1'].columnA1单元格的行 = 工作表['A1'].rowA1单元格的坐标 = 工作表['A1'].coordinate
| 属性 |
作用 |
| row |
单元格所在的行 |
| column |
单元格坐在的列 |
| coordinate |
单元格的坐标 |
| value |
单元格的值 |
3.2单元格操作
3.2.1获取每一行、每一列
#1.按行获取for i in sheet1.rows: for j in i: print(j.value) #2.按列获取for i in sheet1.columns: for j in i: print(j.value)
3.2.2数字、字母间转换
#1. 数字转字母(一般根据列的数字号返回字母值)num_to_word = vb.utils.get_column_letter(2) #结果为 B#2. 根据字母返回数字word_to_num = vb.utils.column_index_from_string('D') #结果为 4
3.2.3写入数据
#1. 向单元格写入数据,三种方式sheet1['a1'] = '写入a1'sheet1.cell(row=2,column=1,value='写入A2')wsheet1.cell(3,1).value='写入A3'#2. 在最后一行写入数据sheet1.append(列表)#3. 向一个区域内写入相同数据for i in sheet1['a1:b4']: for j in i: j.value = '同一内容'
3.2.4移动单元格
#rows和cols正数为向下或向右,负数为向上或向左sheet1.move_range('A1:C3',rows=10,cols=10) #该区域向下、向右移动10单位
3.2.5冻结单元格
sheet1.freeze_panes = 'C3' #冻结C3单元格左边列和上方的行
3.2.6行、列的插入与删除
| 名称 |
语法 |
说明 |
| 插入列 |
sheet1.insert_cols(3,2) |
在sheet1工作表的第3列前插入2列 |
| 插入行 |
sheet1.insert_rows(2,3) |
在sheet1工作表的第2行前插入3行 |
| 删除列 |
sheet1.delete_cols(位置,列数) |
从指定位置开始向后删除指定的列数 |
| 删除行 |
sheet1.delete_rows(位置,行数) |
从指定位置开始向下删除指定的行数 |
3.2.7 合并与取消合并单元格
工作表.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号) 工作表.merge_cells('B3:B5') #合并工作表.unmerge_cells('B3:B5') #取消合并