Python—对Excel进行读写操作
学习Python的过程中,我们会遇到Excel的读写问题。通过搜索得知,我们可以使用xlwt module将数据写入Excel表格,使用xlrd module从Excel读取数据。下面介绍如何实现使用python对Excel进行读写操作。
(1)对Excel的写操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # -*- coding: utf-8 -*- #导入xlwt模块 import xlwt # 创建一个Workbook对象,这就相当于创建了一个Excel文件 book = xlwt.Workbook(encoding = 'utf-8' , style_compression = 0 ) ''' Workbook类初始化时有encoding和style_compression参数 encoding:设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。 默认是ascii。当然要记得在文件头部添加: #!/usr/bin/env python # -*- coding: utf-8 -*- style_compression:表示是否压缩,不常用。 ''' #创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。 # 在电脑桌面右键新建一个Excel文件,其中就包含sheet1,sheet2,sheet3三张表 sheet = book.add_sheet( 'test' , cell_overwrite_ok = True ) # 其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False # 向表test中添加数据 sheet.write( 0 , 0 , 'EnglishName' ) # 其中的'0-行, 0-列'指定表中的单元,'EnglishName'是向该单元写入的内容 sheet.write( 1 , 0 , 'Marcovaldo' ) txt1 = '中文名字' sheet.write( 0 , 1 , txt1.decode( 'utf-8' )) # 此处需要将中文字符串解码成unicode码,否则会报错 txt2 = '马可瓦多' sheet.write( 1 , 1 , txt2.decode( 'utf-8' )) # 最后,将以上操作保存到指定的Excel文件中 book.save(r 'e:\test1.xls' ) # 在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。否则,可能会报错 |
完成后在电脑的E盘下边会产生test1.xls文件,入下图:
(2)对Excel的写操作
1、表格的内容如下:
2、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # -*- coding: utf-8 -*- import xlrd xlsfile = r "C:\Users\Administrator\Desktop\test\Account.xls" # 打开指定路径中的xls文件 book = xlrd.open_workbook(xlsfile) #得到Excel文件的book对象,实例化对象 sheet0 = book.sheet_by_index( 0 ) # 通过sheet索引获得sheet对象 print "1、" ,sheet0 sheet_name = book.sheet_names()[ 0 ] # 获得指定索引的sheet表名字 print "2、" ,sheet_name sheet1 = book.sheet_by_name(sheet_name) # 通过sheet名字来获取,当然如果知道sheet名字就可以直接指定 nrows = sheet0.nrows # 获取行总数 print "3、" ,nrows #循环打印每一行的内容 for i in range (nrows): print sheet1.row_values(i) ncols = sheet0.ncols #获取列总数 print "4、" ,ncols row_data = sheet0.row_values( 0 ) # 获得第1行的数据列表 print row_data col_data = sheet0.col_values( 0 ) # 获得第1列的数据列表 print "5、" ,col_data # 通过坐标读取表格中的数据 cell_value1 = sheet0.cell_value( 0 , 0 ) print "6、" ,cell_value1 cell_value2 = sheet0.cell_value( 0 , 1 ) print "7、" ,cell_value2 |
3、执行的结果:
参考资料:
http://blog.csdn.net/majordong100/article/details/50708365
http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html
http://www.cnblogs.com/snake-hand/p/3153158.html
https://blog.csdn.net/m0_59235508/article/details/122712465---python支持的操作Excel的多种方式
感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。 博主网址:http://www.cnblogs.com/beginner-boy/ 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:582238977@qq.com。 本博客为博主原创,欢迎转载,但必须注明博客来源。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器