python解析excel例子(Python玩转Excel的读写改实例)
类别:脚本大全 浏览量:2253
时间:2022-01-23 02:37:43 python解析excel例子
Python玩转Excel的读写改实例摘要:
- 利用xlrd读取excel
- 利用xlwt写excel
- 利用xlutils修改excel
利用xlrd读取excel
先需要在命令行中pip install xlrd;读取xls文件的流程为:
加载文件->选中第几个表格->按先行后列的顺序读
通用demo
|
import xlrd filename = "test.xls" #文件路径 wb = xlrd.open_workbook(filename) #加载这个xls文件 sh = wb.sheet_by_index( 0 ) #选中第1个表格 rows = sh.nrows #rows为该表格的行数 for i in range ( 1 ,rows): #从第二行开始按行读取 title = sh.cell(i, 0 ).value #取第i+1行,第1列的数据 |
diy功能
|
根据列名获取内容的函数 def get_col_index(name,workbook,sheet): for i in range (sheet.ncols): name2 = sheet.cell( 0 ,i).value print (name2) if name2 = = name: return i return - 1 sheet.cell( 1 ,get_col_index( "创建时间" )).value |
再拓展一点:
|
sh = wb.sheet_by_name(sheetname) #通过表格名称选中表格 print (wb.sheet_names()) #打印该xls文件的所有表格名称 sh.row(i) #获得第i+1行的所有数据组成的list ncols = sh.ncols #获得该表格的所有列数 sh.row_values(rowx, start_colx = 0 , end_colx = None ) #获取第rowx+1行的某几列的数据并组成的list sh.col(colx, start_rowx = 0 , end_rowx = None ) #获取第colx+1列的某几行的数据并组成的list sh.cell(i,j).value #获取第i+1行第j+1列的数据 sh.cell(i,j).ctype #获取第i+1行第j+1列的数据类型 |
注意date类型
说起数据类型,补充一点,xlrd读取xls文件单元格的数据类型有五种,数字与类型的对应关系为:
ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
当单元格某个值为date类型时,不加处理输出的是一个浮点数,此时需要判断ctype并进行一次转换:
|
from xlrd import xldate_as_tuple cell = sh.cell(i, 10 ).ctype if cell.ctype = = 3 : date = datetime( * xldate_as_tuple(cell.value, 0 )) |
利用xlwt写exce
先需要在命令行中pip install xlwt;写xls文件的流程为:
加载文件->选中第几个表格->按先行后列的顺序读
通用demo
|
import xlwt file = xlwt.Workbook() #新建个文件 sheet = file .add_sheet( 'test_sheet0' ,cell_overwrite_ok = True ) #新建个表格,指定表名以及是否可覆盖写 sheet.write(i,j,value) #在第i+1行和第j+1列写value(i、j从0开始) file .save( "test_xls.xls" ) #保存成xls文件并指定文件名 |
更多功能
|
#设置某列的宽度 sheet.col( 0 ).width = 200 #写日期 style = xlwt.XFStyle() style.num_format_str = 'D-MMM-YY' worksheet.write( 0 , 0 , datetime.datetime.now(), style) #写公式 sheet.write( 1 , 1 , xlwt.Formula( 'SUM(A1,B1)' )) #合并单元格的写 sheet.write_merge( 0 , 0 , 0 , 3 , 'First Merge' ) #ps: #write_merge(x, x + h, y, w + y, value, sytle) x和y表示当前行列,h和w为要合并的行数和列数 |
更炫酷一点
既然是写,何不来点style:
|
style = xlwt.XFStyle() #修改字体: font = xlwt.Font() #为样式创建字体 font.name = 'Times New Roman' #字体名称 font.bold = True #黑体 font.colour_index = 2 #修改字的颜色 font.underline = True #下划线 style.font = font #使用到样式中 sheet.write( 0 , 1 , "编号" ,style) #修改单元格背景色 pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = 5 #色号,可以在源代码中看到色号和颜色的对应关系 style = xlwt.XFStyle() style.pattern = pattern sheet.write( 0 , 2 , "编号" ,style) |
利用xlutils修改excel
修改excel文件的流程为:
将xlrd加载的xls文件(xlrd对象)复制为xlwt对象,然后用xlwt对象操作excel
demo
|
import xlrd import pymysql from xlrd import open_workbook from xlutils.copy import copy import xlwt file_name = "test_update.xls" workbook = xlrd.open_workbook(file_name) sheet = wb.sheet_by_index( 0 ) workbook_update = copy(workbook) sheet_update = workbook_update.get_sheet( 0 ) sheet_update.write(i,j,value) workbook_update.save(file_name) |
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/lk7688535/article/details/80986890
您可能感兴趣
- python取当前日期(Python实现根据日期获取当天凌晨时间戳的方法示例)
- python如何编写判断正负数程序(Python实现判断一个整数是否为回文数算法示例)
- 推荐算法第三方python(GitHub 热门:Python 算法大全,Star 超过 2 万)
- python判断对象是否是某一类型(Python判断对象是否相等及eq函数的讲解)
- python中mat文件怎么读(Python第三方库h5py_读取mat文件并显示值的方法)
- python做出来的游戏按什么键运行(python pygame实现方向键控制小球)
- python提取json数据(Python爬取数据保存为Json格式的代码示例)
- python opencv图像表格处理(Opencv-Python图像透视变换cv2.warpPerspective的示例)
- python 简单算法(python实现爬山算法的思路详解)
- python与php比较(浅谈php调用python文件)
- python编辑redis(python使用pipeline批量读写redis的方法)
- python读取txt文件每一行数据(python读取txt文件并取其某一列数据的示例)
- pythonqt入门教程(使用python实现mqtt的发布和订阅)
- python图书管理系统(python面向对象法实现图书管理系统)
- python2.7中logging的使用方式(Python中使用logging和traceback模块记录日志和跟踪异常)
- 基于pythonopencv的图片识别(Python Opencv实现图像轮廓识别功能)
- 菲律宾游学(菲律宾游学中介机构)
- 菲律宾美食(菲律宾美食排行榜前十名)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
热门推荐
- vuejs图片缩放裁切(vue+js点击箭头实现图片切换)
- <!DOCTYPE> 标签的介绍
- iis部署后浏览没有主界面(IIS 浏览aspx页面出现无法显示XML页的解决方法分享)
- mysql和utf8哪个好(为什么在MySQL中不建议使用UTF-8)
- angular兄弟组件调用方法(Angular封装WangEditor富文本组件的方法)
- css选择器使用时需要注意哪些方面(CSS选择器的新用法推荐)
- 用python查看运行进程(在Python运行时动态查看进程内部信息的方法)
- python使用pandas数据分析系列(python使用pandas处理大数据节省内存技巧推荐)
- vue element 权限管理(Vue Element前端应用开发之功能点管理及权限控制)
- tomcat详细配置(Tomcat多实例部署及配置原理)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9