单元格的操作
获取一个单元格的值
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
单元格 = 工作表['A1'].value
print(单元格)
获取第2列1,3,5,7行的数据
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
for i in range(1,8,2):
print(i,工作表.cell(row=i,column=2).value)
获取某一区域的单元格的值
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
单元格区域 = 工作表['A1:C10']
for 数据 in 单元格区域: # 循环每行
for 单元格 in 数据: # 循环每个单元格
print(单元格.value)
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
# 行和列的范围 iter_cols按列
for 行 in 工作表.iter_rows(min_row=1,max_row=10,min_col=1,max_col=3):
for 单元格 in 行:
print(单元格.value)
读取数据
import openpyxl as vb
路径 = r'c:/test2.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
最大行 = 工作表.max_row
最大列 = 工作表.max_column
A1单元格的值 = 工作表['A1'].value
A1单元格的值2 = 工作表.cell(1,1).value
A1单元格的列 = 工作表['A1'].column
A1单元格的行 = 工作表['A1'].row
写入数据
向一个单元格写入数据
import openpyxl as vb
路径 = r'c:/test2.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
工作表.cell(1,5,value='孙兴华')
工作表['E2']='兴华'
工作簿.save(路径)
工作表.append(列表) # 在最后一列写入数据
行列的插入与删除
插入列:工作表.insert_cols(位置,列数),其中位置是指在工作表的第几列前插入多少列。
插入行:工作表.insert_rows(位置,行数),其中位置是指在工作表的第几行前插入多少行。
删除列:工作表.delete_cols(位置,列数),从指定位置开始向后删除指定的列数。
删除行:工作表.delete_rows(位置,行数),从指定位置开始向下删除指定的行数。
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
工作表.insert_cols(idx=2,amount=5)
工作表.insert_rows(idx=2,amount=5)
工作表.delete_cols(idx=2,amount=5)
工作表.delete_rows(idx=2,amount=5)
工作簿.save(路径)
移动单元格
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
# rows和cols正数为向下或向右、负数为向左或向上
工作表.move_range("A1:C3",rows=10,cols=10)
工作簿.save(路径)
冻结单元格
import openpyxl as vb
路径 = r'c:/test.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
工作表.freeze_panes = "C3"
工作簿.save('c:/1.xlsx')
合并与取消合并单元格
工作表.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
import openpyxl as vb
路径 = 'c:/test3.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
工作表.merge_cells('B3:F5') # 合并
工作表.unmerge_cells('B3:F5') # 取消合并
工作簿.save(路径)
使用公式
import openpyxl as vb
路径 = 'c:/test3.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
工作表['F1'] = '=sum(C1:E1)'
工作簿.save(路径)
import openpyxl as vb
路径 = 'c:/test3.xlsx'
工作簿 = vb.load_workbook(路径,data_only=True)
工作表 = 工作簿['Sheet1']
工作簿.save(路径)
print(工作表['F1'].value)
对行列进行分组
import openpyxl as vb
路径 = 'c:/test3.xlsx'
工作簿 = vb.load_workbook(路径,data_only=True)
工作表 = 工作簿['Sheet1']
工作表.column_dimensions.group('A','D', hidden=True)
工作簿.save(路径)
给单元格添加批注
import openpyxl as vb
路径 = 'c:/test3.xlsx'
工作簿 = vb.load_workbook(路径,data_only=True)
工作表 = 工作簿['Sheet1']
批注 = vb.comments.Comment('这里写批注','孙兴华')
工作表['F20'].comment = 批注
工作表['F21'].comment = 批注
工作簿.save(路径)