前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openpyxl 读写 excel

openpyxl 读写 excel

作者头像
Michael阿明
发布2021-09-06 11:12:06
7730
发布2021-09-06 11:12:06
举报
文章被收录于专栏:Michael阿明学习之路
代码语言:javascript
复制
import openpyxl
book = openpyxl.load_workbook('b.xlsx') # 读取
# sheet = book["name_tab"]
sheet = book.active # 
row=sheet.max_row  # 行数
column=sheet.max_column # 列数
print(row)
print(column)
for r in range(2, row+1): # 跳过表头,行号是从1开始的,列号是从0开始的
	for c in range(14,24,2): # [14, 24) 之间每隔一列操作一下
		sheet[r][c].value = 1
book.save("b_.xlsx") # 保存
  • 注意 行号 r 是从 1 开始的,列 用 [ ] 方式取元素 是从 0 开始的,cell(r, c) 是从 1 开始的
  • 另外注意效率问题,sheet[r][c]取元素效率很低,推荐使用 sheet.cell(r, c),见下面测试代码
代码语言:javascript
复制
import openpyxl
import time
book = openpyxl.load_workbook("b.xlsx")
sheet = book.active
row=sheet.max_row
column=sheet.max_column
print(row)
print(column)

s_time = time.time()
for r in range(2, row+1): # 跳过表头
	for c in range(0, column):
		sheet[r][c].value = 1
e_time = time.time()
print(e_time - s_time)
book.save("b.xlsx")

s_time = time.time()
for r in range(2, row+1): # 跳过表头
	for c in range(0, column):
		sheet.cell(r,c+1).value = 2
e_time = time.time()
print(e_time - s_time)
book.save("b_.xlsx")
代码语言:javascript
复制
3063
33
735.839537858963
0.19450640678405762

改下表格,测试下下标是从 0, 还是 1开始的

  • 行号 r 是从 1 开始的,列号 c 用 [ ] 方式取元素 是从 0 开始的,cell(r, c) 是从 1 开始的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档