上篇日志学习了Python 使用openpyxl模块读取 Excel 表格,接下来就学习如何编辑 Excel 表格,向其中写入内容。
如果向某个单元格写入数据,直接给某个单元格赋值就行。
from openpyxl import load_workbook wb = load_workbook('demo.xlsx') ws = wb.active # 把想要写入的内容赋值给相应单元格 ws['A1'] = '世界你好!' # 保存demo.xlsx表格 wb.save('demo.xlsx')
也可以把单元格赋值给变量wc,然后再给wc.value赋值
wb = load_workbook('demo.xlsx') ws = wb.active wc = ws['A1'] wc.value = 'Hello world.' # 保存demo.xlsx表格 wb.save('demo.xlsx')
Workbook 新建 Excel 文档
通过查看openpyxl官方文档,官方给了一个案例,我翻译了一下注释:
这个案例引入的是 Workbook 方法新建文档,注意大小写。新建 Excel 文档的时候,如果存在同名文档会被覆盖。
from openpyxl import Workbook wb = Workbook() # 选中活动表格 ws = wb.active # 数据直接存到单元格A1 ws['A1'] = 42 # 可以用列表添加一行 ws.append([1, 2, 3]) # Python 类型自动转换 import datetime # 把当前时间存到 A2 ws['A2'] = datetime.datetime.now() # 保存文件 wb.save("sample.xlsx")
执行效果是这样的,会新建一个sample.xlsx:
从官方的案例中可以看到,可以用 sheet.append() 给表格添加一行.
我们给刚才新建的这个sample.xlsx再添加一行数据
# 这里我们同时导入load_workbook 和 Workbook from openpyxl import Workbook,load_workbook wb = load_workbook("sample.xlsx") # 选中活动表格 ws = wb.active # 用列表增加一行数据 ws.append([1, 2, 3]) # 保存文件 wb.save("sample.xlsx")
执行效果:
再举个例子,用循环写入数据:
wb = load_workbook("sample.xlsx") ws = wb.active data = [ ['a',1], ['b',2], ['c',3], ['d',4], ] for row in data: ws.append(row) wb.save("sample.xlsx")
执行效果:
向表格中插入公式
直接给单元格赋值公式即可:
wb = load_workbook("sample.xlsx") ws = wb.active ws['B8'] = '=SUM(B4:B7)' wb.save("sample.xlsx")
执行效果:
查看 openpyxl 支持哪些 Excel 公式
from openpyxl.utils import FORMULAE print(FORMULAE) # 运行结果里出现的公式都可以用
插入一列
.insert_cols(idx=数字编码) 在idx列前面(左边)插入一列
wb = load_workbook("sample.xlsx") ws = wb.active # 在第二列前面插入1列 ws.insert_cols(2) wb.save("sample.xlsx")
插入多列
.insert_cols(idx=数字编码,amount=几列) 在idx列前面插入amount列
wb = load_workbook("sample.xlsx") ws = wb.active # 在第二列前面插入3列 ws.insert_cols(2,3) wb.save("sample.xlsx")
插入一行
.insert_rows(idx=数字) 在idx行上面插入一行
wb = load_workbook("sample.xlsx") ws = wb.active ws.insert_rows(2) wb.save("sample.xlsx")
插入多行
.insert_rows(idx=数字,amount=几行) 在idx行上面插入amount行
wb = load_workbook("sample.xlsx") ws = wb.active ws.insert_rows(4,2) wb.save("sample.xlsx")
删除列
.delete_cols(idx=数字,amount=几列) 从idx列开始向后删除amount列,包括idx列
wb = load_workbook("sample.xlsx") ws = wb.active # 从第二列开始,删除2列 ws.delete_cols(2,2) wb.save("sample.xlsx")
删除行
.delete_rows(idx=数字,amount=几行) 从idx行开始向下删除amount行,包括idx行
wb = load_workbook("sample.xlsx") ws = wb.active # 从第二行开始,删除4行 ws.delete_rows(2,4) wb.save("sample.xlsx")
移动单元格
.move_range('A2:C3',rows=2,cols=3) 单元格向右或者向下移动几行或几列,如果是负数则向左或向上
wb = load_workbook("sample.xlsx") ws = wb.active # A2:C3 向下移动2行,向右移动3列 ws.move_range('A2:C3',2,3) wb.save("sample.xlsx")
创建新的工作表
.create_sheet() 创建新的工作表,新工作表的名称不允许跟之前的名称重复
wb = load_workbook("sample.xlsx") print(wb.sheetnames) wb.create_sheet('新工作表') print(wb.sheetnames) wb.save('sample.xlsx') ''' 执行结果: ['Sheet'] ['Sheet', '新工作表'] '''
删除工作表
.remove() 删除已存在的工作表
wb = load_workbook('sample.xlsx') print(wb.sheetnames) wb.remove(wb['新工作表']) print(wb.sheetnames) wb.save('sample.xlsx') ''' 执行结果: ['Sheet', '新工作表'] ['Sheet'] '''
复制一个工作表
.copy_worksheet() 复制指定的工作表
wb = load_workbook("sample.xlsx") print(wb.sheetnames) wb.copy_worksheet(wb['Sheet']) print(wb.sheetnames) wb.save('sample.xlsx') ''' 执行结果: ['Sheet'] ['Sheet', 'Sheet Copy'] '''
修改工作表名
.title 给其赋值即可
wb = load_workbook('sample.xlsx') print(wb.sheetnames) ws = wb['Sheet'] ws.title = '工作表1' print(wb.sheetnames) wb.save('sample.xlsx') ''' 执行结果: ['Sheet', 'Sheet Copy'] ['工作表1', 'Sheet Copy'] '''
上面介绍了官方案例用Workbook新建Excel文档,我们同样可以在新建文档的时候,指定工作表名。
wb = Workbook() # 选中活动表格 ws = wb.active ws['A1'] = 42 ws.title = 工作表1' wb.save("sample.xlsx")
冻结窗格
.freeze_panes 可以指定一个单元格,然后冻结
wb = load_workbook("sample.xlsx") ws = wb.active ws.freeze_panes = 'B2' wb.save("sample.xlsx")
如果想冻结首行的话可以冻结A2就可以了,同理,如果只想冻结首列可以冻结B1单元格。
自动筛选
.auto_filter..ref 指定范围内容自动筛选,可以用.dimensions筛选整个工作表
wb = load_workbook("sample.xlsx") ws = wb.active ws..auto_filter..ref = wb.dimensions wb.save("sample.xlsx")
更多Python相关文章点击:Python学习日志目录
下一篇:Python 第三方库、模块安装和卸载方法以及国内镜像
上一篇:Python 使用openpyxl模块打开和读取 Excel 表格内容
- 相关文章 -
Python 数字与数字型运算 - 2020-09-08
Python 基础知识之数据类型 - 2020-09-07
Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07
Python 基础知识之变量 - 2020-09-03
Python 详细安装步骤图解 - 2020-09-01
Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09
Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05
Python 数据分析第三方库 Numpy 的安装和使用 - 2020-02-03
- 文章评论 -
- 最新评论[0条评论] -
版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 |
逍遥峡谷 ·
酷品优选
Copyright©Interstellar Central Occult Agency (I.C.O.A)
本局纯属虚构,如有雷同,纯属巧合