python excel 处理 xlrd & xlwt &xlutils
方案一 xlrd & xlwt &xlutils
使用xlrd 用来读取 xls 文件
xlrd --> xls read
安装
pip install xlrd
使用
import xlrd
book = xlrd.open_workbook("myfile.xls") # 创建读取xls 对象
print("表格文件的sheet页有 {0}".format(book.nsheets))
print("表格文件的sheet页名: {0}".format(book.sheet_names()))
sh = book.sheet_by_index(0) # 选择第一页操作
print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))
for rx in range(sh.nrows): # 按行读取
print(sh.row(rx))
for row in range(sh.nrows): # 按单元格读取
for col in ncols range(sh.ncols)
print("单元格 内容 {0}".format(sh.cell_value(rowx=row, colx=col)))
注意
不支持以下内容
图表、宏、图片、任何其他嵌入式对象,包括嵌入式工作表。
VBA模块
公式,但会提取公式计算的结果。
评论
超链接
自动筛选、高级筛选、透视表、条件格式、数据验证
不支持受密码保护的文件,此库无法读取这些文件。
1.2.0 1.2.0 1.2.0 以上的版本不支持读取xlsx了很奇怪
2020 的更新中这个库去除了对xls 以外格式的支持而1.2 版本只能支持python3.7
除此之外xlrd 都是好用的
使用xlwt 用来写入 xls 文件
xlwt --> xls write
安装
pip install xlwt
使用
from xlwt import Workbook
book = Workbook(encoding='utf-8') # 创建 Workbook 对象
sheet1 = book.add_sheet('Sheet 1') # 创建sheet页
book.add_sheet('Sheet 2')
sheet1.write(0,0,'A1') # 写入单元格
sheet1.write(0,1,'B1')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')
book.save('simple.xls') # 保存文件
此库17年后就没有更新过了
xlutils :对于xlrd和xlwt 的扩展工具
安装
pip install xlutils
使用
from xlrd import open_workbook
from xlwt import easyxf
from xlutils.copy import copy
rb = open_workbook('source.xls',formatting_info=True)
rs = rb.sheet_by_index(0)
wb = copy(rb)
ws = wb.get_sheet(0)
plain = easyxf('')
for i,cell in enumerate(rs.col(2)):
if not i:
continue
ws.write(i,2,cell.value,plain)
for i,cell in enumerate(rs.col(4)):
if not i:
continue
ws.write(i,4,cell.value-1000)
wb.save('output.xls')
文档链接
链接:https://pan.baidu.com/s/1aSE9Q9BV2kwt1tmjrh0mCA 提取码:1234 --来自百度网盘超级会员V5的分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)