Python向Excel表格中写入内容 修改Excel表格中的内容

首页 » Python教程 » Python向Excel表格中写入内容 修改Excel表格中的内容

向某个格子写入内容并保存

向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')

未经允许不得转载:作者:鳄鱼君Ba, 转载或复制请以 超链接形式 并注明出处 鳄鱼君Ba
原文地址:《Python向Excel表格中写入内容 修改Excel表格中的内容》 发布于2020-05-16

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

3 + 9 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册