# remove删除工作表sheet = workbook["test-1"]workbook.remove(sheet)# del操作删除del workbook["test2"]# 保存文件workbook.save(file_path)复制代码4 行列处理获取 sheet 对象后,后续即可进行行列操作,包括行列读取,添加,删除等 。
4.1 读行列
- 获取全部行和列,然后可以进行遍历:sheet.rows,sheet.columns
- 读取部分行列:读一行sheet[1],读多行sheet[2:3],读一列sheet['A'],读多列sheet['B:C']
# 遍历全部行>>> for row in sheet.rows:...print(row)...(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)....# 读取部分行列>>> sheet[1](<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)>>> sheet["A:B"]((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>, <Cell 'Sheet1'.A4>, <Cell 'Sheet1'.A5>, <Cell 'Sheet1'.A6>), (<Cell 'Sheet1'.B1>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.B5>, <Cell 'Sheet1'.B6>))复制代码4.2 添加行列添加行列,可以指定位置添加单个行列或多个行列 。- 直接在工作表中追加行数据:sheet.Append(rowdata)
- 在指定 index(从1开始计算) 位置添加行列:sheet.insert_rows,sheet.insert_cols
# 在第4行插入1行空行>>> sheet.insert_rows(4)# 在第2行插入2行空行>>> sheet.insert_rows(idx=2,amount=2)# 添加一行数据到表>>> row_data = https://www.isolves.com/it/cxkf/yy/Python/2020-12-01/["tom", 15, "tom@test.com"]>>> sheet.append(row_data)# 保存修改内容>>> workbook.save(file_path)复制代码4.3 删除行列删除操作与插入行列操作方式一致,使用delete_rows及delete_cols方法 。# 删除行>>> sheet.delete_rows(2,2)>>> workbook.save(file_path)复制代码5 单元格处理我们的数据最终是保存在每一个单元格(Cell)中,因此,最终我们操作数据其实就是单元格中的数据,单元格中,openpyxl 使用是 Cell 对象 。前面在遍历行列数据时,可以看到输出<Cell 'Sheet1'.A1>的内容,这对应的单元格对象 。下面对单元格的操作进行说明 。5.1 获取单元格数据值及属性值定位获取单元格有两种方式:
- 直接指定行列名:sheet[A1]
- 使用 cell 函数(行列下标从1开始):sheet.cell(row=2,column=1)
# 指定行列坐标获取单元格>>> sheet["A1"]<Cell 'Sheet1'.A1># cell函数获取单元格>>> sheet.cell(row=1, column=1)<Cell 'Sheet1'.A1>复制代码获取单元格对象后,可以获取数据值及其属性,包括它所在的行列数,坐标,值等 。>>> cell = sheet["A2"]>>> cell.value'张三'>>> cell.coordinate'A2'>>> cell.column1>>> cell.row2复制代码5.2 移动单元格通过对单元格区域,可以向上、下、左、右进行移动,使用的是move_range(range,rows,cols),其中 rows 和 cols 为整数,正整数表示向下或向右,负整数为向上或向左 。# 移动数据区域(向上移动2行,向右移动3列),正整数为向下或向右,负整数为向上或向左sheet.move_range("A3:C3", rows=-2, cols=3)wb.save(file_path)复制代码5.3 合并拆分单元格对于跨行和跨列,需要对单元格进行合并,使用的是merge_cells(range_string, start_row, start_column, end_row, end_column) 。如果要合并的单元格都有数据,只会保留左上角的数据,其他则丢弃 。合并及拆分都可以通过行列坐标(如A1)或者行列下标(如1,2)进行 。# 单元格合并,使用范围坐标sheet.merge_cells("A2:B3")# 单元格合并,指定行列下标(下标从1开始)sheet.merge_cells(start_row=5, start_column=3, end_row=7, end_column=4)wb.save(file_path)# 拆分单元格sheet.unmerge_cells("A2:B3")sheet.unmerge_cells(start_row=5, start_column=3, end_row=7, end_column=4)# 保存文件wb.save(file_path)复制代码5.4 写入单元格对单元格值进行修改和写入,直接对cell.value进行赋值即可 。这里需要注意的是,可以写入 excel 公式,具体公式与 excel 中用到公式一致,另外,若是写入公式,读取时获取到的 value 值也是公式,而非公式值 。# 写入值cell.value = https://www.isolves.com/it/cxkf/yy/Python/2020-12-01/"张三"# 写入公式(求平均值)cell.value = "=AVERAGE(B2:B6)"复制代码
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 你会做工资条吗?不用函数公式的那种,超简单
- 品牌机限定应用,普通 Windows 也能随意装
- 拒做PB Boy!教你巧用 Protobuf 反射来优化代码
- 使用Docker镜像
- 什么是PE系统?建议有电脑的同志用U盘做一个备用
- 搞懂Android应用启动过程,再也不怕面试官了
- 白雪莲茶的功效和功能,白茶的保健功效作用
- 白牡丹茶味道怎么样,白牡丹功效及作用介绍
- 如何在前端项目中将敏感数据信息脱敏处理?
- 本草茶丰胸是真的吗,红枣丰胸茶管用吗
