每日一模块:操作execl表格openpyxl
常见的模块
- openpyxl 处理2010及以后
- xlwt 老版本
创建excel文件,然后写入内容
from openpyxl import Workbook
"""
犯得错: 必须所有写完后再关闭
"""
# write
wb = Workbook()
ws = wb.create_sheet('first', 0)
# 获取excel文件的所有sheet以列表返回
sheet_list = wb.sheetnames
# 获取excel中每个sheet
for i in wb:
print(i)
# 直接获取指定sheet对象
sheet1 = wb['first']
# 指定单元格写入数据
sheet1['a1'] = '姓名'
sheet1['b1'] = '年龄'
# 或者通过cell函数来实现
sheet1.cell(row=2, column=1, value='xxx')
sheet1.cell(row=2, column=2, value='30')
sheet2 = wb.create_sheet('第二个表格', 1)
# 如果行内有内容,从下一行空白行开始写入
# 一次添加1行写入
row = range(1, 6)
sheet2.append(row)
# 一次添加多行
rows = [
['姓名', '年龄', '性别'],
['sun', '30', 'male'],
['xiu', '30', 'male'],
['wen', '30', 'male'],
]
for i in rows:
sheet2.append(i)
wb.save('manage.xlsx')
# 获取有效的【写入内容】最大行和列
print(sheet2.rows) # 所有有效行<generator object Worksheet._cells_by_row at 0x000001CA5A275888>
print(sheet2.columns) # <generator object Worksheet._cells_by_col at 0x0000026B99345888>
print(sheet2.max_row) # 5
print(sheet2.max_column) # 5
# 获取每一行数据
for row in sheet2.rows:
for val in row:
print(val.value)
# 获取某一行数据
for cell in list(sheet2.rows)[0]: # 第一行数据
print(cell.value)
wb.save('manage.xlsx')
读
from openpyxl import load_workbook
wb = load_workbook(filename='manage.xlsx', read_only=False, data_only=True)
# data_only = True 表示单元格的值是由公式计算的,返回的是值,而不是公式
sheets = wb.sheetnames # 获取excel文件中所有的sheet名列表
print(sheets)
sheet = wb['first'] # 指定某个sheet表格
# 获取内容
val = sheet['a1'].value
print(val)
# 赋值
sheet['b2'] = 30
sheet.title = '我改变了sheet名'
wb.save('manage.xlsx')
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具