
[306]python操作excel表格(xlrd/xlwt)
发布日期:2021-05-16 09:25:12
浏览次数:16
分类:精选文章
本文共 2848 字,大约阅读时间需要 9 分钟。
Python操作Excel文件:完整指南
Python是处理表格数据的强大工具,通过xlrd和xlwt库,可以方便地读取和写入Excel文件。处理复杂的文档如日期、合并单元格等,需要对这些库的高级功能有深入了解。以下是关于Python操作Excel文件的详细指南。
1.安装必要的库
首先,需要安装xlrd和xlwt库。使用pip进行安装:
pip install xlrd xlwt
注意事项:
- xlrd用于读取Excel文件。
- xlwt用于写入Excel文件。
- 需要确保Python环境正确配置,如果使用PyCharm,需设置项目interpreter为Python 3.x。
2.读取Excel文件(xlrd库)
2.1 打开Excel文件
使用xlrd库打开Excel文件:
import xlrd# 打开Excel文件workbook = xlrd.open_workbook(r'F:\demo.xlsx')
2.2 获取工作表
获取所有工作表的名称:
print(workbook.sheet_names()) # 输出所有工作表名称
2.3 获取特定工作表
根据工作表索引获取工作表:
sheet = workbook.sheet_by_index(0) # 根据索引0获取第一个工作表
2.4 检查数据类型
获取单元格的数据类型:
cell = sheet.cell(1, 0)print(cell.value) # 获取单元格值print(cell.ctype) # 获取数据类型,如3表示日期
2.5 处理日期
如果单元格为日期:
cell = sheet.cell(2, 2)date_value = xlrd.xldate_as_tuple(cell.value, workbook.datemode)formatted_date = date(*date_value[:3]).strftime('%Y/%m/%d')print(formatted_date)
2.6 处理合并单元格
读取合并单元格:
# 获取所有合并单元格的位置merged_cells = workbook.sheet_by_index(0).merged_cellsfor cell in merged_cells: row_range, col_range = cell # 获取合并单元格的值 cell_value = sheet.cell_value(*row_range, *col_range) print(cell_value)
3.写入Excel文件(xlwt库)
3.1 创建工作簿和工作表
创建新的Excel文件:
import xlwtworkbook = xlwt.Workbook()sheet = workbook.add_sheet('sheet1', cell_overwrite_ok=True)
3.2 设置单元格样式
创建自定义样式:
def set_style(name, height=220, bold=False): style = xlwt.XFStyle() font = xlwt.Font() font.name = name font.bold = bold style.font = font return style
3.3 写入数据
写入数据:
# 写入标题行row_data = ['业务', '状态', '北京', '上海', '广州', '深圳', '状态小计', '合计']for i in range(len(row_data)): sheet.write(0, i, row_data[i], set_style('Times New Roman', 220, True))# 写入数据行for i in range(1, 5): for j in range(len(status)): sheet.write(i + j, 1, status[j], set_style('Times New Roman', 220))
3.4 合并单元格
合并行或列:
# 合并特定行sheet.write_merge(21, 21, 0, 1, '合计', set_style('Times New Roman', 220, True))# 合并特定列for i in range(0, len(column0)): sheet.write_merge(i + 1, i + 1 + 3, 0, 0, column0[i], set_style('Arial', 220, True))
4.处理多个工作表
创建多个工作表并写入数据:
sheet2 = workbook.add_sheet('sheet2', cell_overwrite_ok=True)sheet2.write_merge(9, 9, 2, 8, xlwt.Formula('HYPERLINK("http://www.cnblogs.com/zhoujie", "jzhou's blog")'), set_style('Arial', 300, True))
5.读取和写入CSV文件
5.1 读取CSV文件
读取CSV文件:
import csvwith open('test.csv', 'rb') as csvfile: reader = csv.reader(csvfile) for row in reader: print(row)
5.2 写入CSV文件
写入CSV文件:
with open('test.csv', 'wb') as csvfile: writer = csv.writer(csvfile) writer.writerow(['Name', 'Age', 'Date']) writer.writerows([ ['Alice', 30, '2018-06-01'], ['Bob', 25, '2018-06-02'] ])
6.优化和注意事项
- 性能优化: 避免读取大文件时使用
open_workbook
而不是easyxf
。 - 版本兼容性: 确保-xlrd和-xlwt版本与Python版本匹配。
- 代码规范: 处理数据前清理数据,避免多线程同时操作Excel文件。
7.总结
Python通过xlrd和xlwt库,便于完成Excel文件的读取和写入任务。处理复杂数据时,理解数据类型和样式设置至关重要。对于处理大数据量或需要同时读写文件,使用xlutils库推荐。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月18日 09时33分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
G1 如何做到可预测的停顿和G1 垃圾收集器入门
2019-03-21
0X3协议与数据包
2019-03-21
C++ 函数需要有返回值,但非全分支return(RVO)
2019-03-21
python解释器环境问题
2019-03-21
图像质量评估仿真
2019-03-22
uni-app快速导入自己需要的插件
2019-03-22
作为公共组软件工程师如何工作
2019-03-22
uni-app 微信支付
2019-03-22
编写xor_shellcode.py
2019-03-22
Echarts笔记
2019-03-22
Ubuntu 20.04 Docker 安装并配置
2019-03-22
[小技巧]新建txt菜单
2019-03-22
【问答23】Linux移植:如何制作rootfs?
2019-03-22
Java虚拟机详解(五)------JVM参数(持续更新)
2019-03-22
在 eclipse 中将 web 项目部署到 tomcat 服务器上
2019-03-22
ffmpeg结构体(3)-之AVPacket及其相关函数
2019-03-22
iOS关于申请公司开发者账号缴费支付
2019-03-22
寻找两个有序数组的中位数
2019-03-22
10-3 A1-4在产品表中找出库存数量大于50的产品的信息 (20 分)
2019-03-22