向某个格子写入内容并保存
向A1的格子中写入Hello World!
from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
sheet['A1']='Hello World!' # 第一种方式
cell=sheet['A2'] # 第二种方式
cell.value='Hello World!'
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
如果提示:PermissionError: [Errno 13] Permission denied,关闭Excel表格再进行操作!
插入Python列表数据
使用sheet.append(Python列表)的方式,会在插入在表格内已有数据的后面
from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
data=[
['eyujun1',1],
['eyujun2',2],
['eyujun3',3],
['eyujun4',4],
['eyujun5',5],
]
for row in data:
sheet.append(row)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
查看openpyxl支持的公式
使用以下代码查看openpyxl支持的公式:
from openpyxl.utils import FORMULAE
print(FORMULAE)
插入公式
计算B6到B10的平均数 并赋值给C1格子
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet['C1']='=AVERAGEA(B6:B10)' # 计算B6到B10的平均数 并赋值给C1格子
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
插入一列和多列
使用sheet.insert_cols(idx=数字编号)的方式,在idx列左边插入一列:
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet.insert_cols(idx=2)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
使用sheet.insert_cols(idx=数字编号,amount=要插入的列数)的方式,在idx列左边插入多列:
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet.insert_cols(idx=2,amount=3)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
插入一行和多行
跟列类似,这里还是使用sheet.insert_cols(idx=数字编号,amount=要插入的列数)的方式,在idx行上边插入一行,插入多行只需要设置amount参数即可:
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet.insert_rows(idx=2,amount=3)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
删除一行和多行
使用sheet.delete_rows(idx=数字编号,amount=要删除的行数)的方式,删除多行只需要设置amount参数即可:
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet.delete_rows(idx=2,amount=3)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
移动格子
使用sheet.move_range(“C1:D1”,rows=2,cols=2)的方式,正整数为向下做向右,负整数为向左或向上。那么现在我想把A1的格子移动到C2:B2的位置:
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet.move_range("A1",rows=2,cols=1)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
创建和删除Sheet表格
使用workbook.create_sheet(sheet名称)的方式来创建新的表格:
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
print(workbook.sheetnames)
workbook.create_sheet('Sheet999')
print(workbook.sheetnames)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
# ['Sheet1', 'Sheet2', 'Sheet3']
# ['Sheet1', 'Sheet2', 'Sheet3', 'Sheet999']
删除表格
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
print(workbook.sheetnames)
sheet=workbook['Sheet2']
workbook.remove(sheet)
print(workbook.sheetnames)
workbook.save(filename='./book.xlsx') # 可以保存到新的文件
# ['Sheet1', 'Sheet2', 'Sheet3', 'Sheet999']
# ['Sheet1', 'Sheet3', 'Sheet999']
复制表格
复制Sheet999表格
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
print(workbook.sheetnames)
sheet=workbook['Sheet999']
workbook.copy_worksheet(sheet)
print(workbook.sheetnames)
workbook.save(filename='./book.xlsx')
修改表格名称
修改Sheet1表格名称为Sheet_down
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
print(workbook.sheetnames)
sheet=workbook['Sheet1']
sheet.title='Sheet_down'
print(workbook.sheetnames)
workbook.save(filename='./book.xlsx')
创建新的Excel表格文件
现在是创建一个新的Excel表格文件,而不是加载读取修改原本的Excel表格,这点需要注意。
from openpyxl import Workbook
workbook=Workbook()
sheet=workbook.active
sheet.title='表格1'
workbook.save(filename='./bobo.xlsx')
冻结窗格(视图下的冻结窗格):保持工作表的某一部分在其他部分滚动时可见。一般冻结首行,向上滚动的时候,首行还可以显示出来,具体效果自己打开Excel表格测试。
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook.active
sheet.freeze_panes="B2"
workbook.save(filename='./book.xlsx')
需要自己摸索下这个冻结的效果
表格筛选
对整张表格进行筛选
from openpyxl import load_workbook
workbook=load_workbook(filename='./book.xlsx')
sheet=workbook['Sheet1']
sheet.auto_filter.ref=sheet.dimensions
workbook.save(filename='./book.xlsx')
未经允许不得转载:作者:鳄鱼君,
转载或复制请以 超链接形式 并注明出处 鳄鱼君。
原文地址:《Python向Excel表格中写入内容 修改Excel表格中的内容》 发布于2020-05-16