摘要:
- 利用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)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]