网站首页 > 博客文章 正文
本次是在原来有一定格式的Excel文档中补充成绩。
- 安装的模块:xlwt 、 xlrd 、xlutils
xlrd的模块是只用读取xls文件,不能写文件,同理xlwt,只(新建写)不读已有的xls,
有需要Python学习资料的大哥大姐吗?小编整理一套Python资料和PDF,感兴趣者可以关注小编后私信学习资料(是关注后私信哦)反正闲着也是闲着呢,不如学点东西啦
xlrd的用法:
data =xlrd.open_workbook(fime_path+'011.xls') table = data.sheet_by_index(0) nrows = table.nrows ncols = table.ncols
- 读取单元格: table.cell(i,j).value
xlwt的用法
wbk = xlwt.Workbook() sheet = wbk.add_sheet('sheet 1') sheet.write(0,1,'test text') wbk.save('test.xls')
- 详情:【 https://my.oschina.net/dddttttt/blog/466103 】
到了讲怎么在原有的xls文档追加。这就使用到xlutils,xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已,如下图:
from xlutils.copy import copy old_xls = xlrd.open_workbook(file_path2,formatting_info=True) table_xlwt_b = copy(old_xls) table_xlwt = table_xlwt_b.get_sheet(0) table_xlwt.write(id_p,j,list[k]) #iid_p是行,j是列,list[k]是填充的值 table_xlwt_b.save(fime_path+"033.xls")
最后需要注意,打开原有xls文件,需要保留文档单元格的格式,需要在xlrd打开文件参数添加formatting_info=True,(默认是FALSE),同时,这参数只支持旧版的xls后缀的文件,不支持新版的xlsx后缀的文档,,如果打开xlsx会抛出异常,因此需要另存为xls文档
最后附上代码
#!coding:utf-8 import xlrd import xlwt import copy from xlutils.copy import copy fime_path="F:\\program_new\\PyCharm Community Edition 2018.2.3\\code_example\\xlwt_xlrd\\code\\" old_xls = xlrd.open_workbook(fime_path+"022.xls", formatting_info=True) def read_book(): data =xlrd.open_workbook(fime_path+'011.xls') #导入表 table = data.sheet_by_index(0) nrows = table.nrows ncols = table.ncols i=0 j=0 list_score = [] score = [] for i in range(1,nrows): for j in range(6,ncols): # print("%d%d"%(i,j)) score.append(table.cell(i,j).value) list_score.append(score) score=[] return list_score def id_position(student_id): tabel_xlwt_ot = old_xls.sheet_by_index(0) nrows = tabel_xlwt_ot.nrows ncols = tabel_xlwt_ot.ncols for i in range(3,nrows): now_student_id = int(tabel_xlwt_ot.cell(i,0).value) now_student_id=str(now_student_id) if now_student_id==student_id: return i def write_book(): table_xlwt_b = copy(old_xls) table_xlwt = table_xlwt_b.get_sheet(0) list2=read_book() print(len(list2),len(list2[1])) for list in list2: s_id=list[0] print(list) id_p = id_position(s_id) if id_p is not None: for (j,k) in zip(range(2,27,3),range(2,11)): print(k,j) table_xlwt.write(id_p,j,list[k]) else: print(u"找不到该学号%s"%s_id) table_xlwt_b.save(fime_path+"033.xls") if __name__=="__main__": write_book()
不用关闭文件,官方没有提供具体的方法关闭打开的xls文件。可以使用 book.release_resources() 释放内存
有需要Python学习资料的大哥大姐吗?小编整理一套Python资料和PDF,感兴趣者可以关注小编后私信学习资料(是关注后私信哦)反正闲着也是闲着呢,不如学点东西啦
猜你喜欢
- 2024-10-24 python处理excel文件03:xlwt模块写入excel文件
- 2024-10-24 经验 | Python 读写 Excel 文件第三方库汇总
- 2024-10-24 python实现爬取豆瓣电影Top250(python爬取豆瓣电影的流程)
- 2024-10-24 Python如何操作Excel,xlrd和xlwt类库的使用
- 2024-10-24 如何用Python读写Excel文件?最便捷的3种方式
- 2024-10-24 安全服务日常工作之大量端口状态扫描
- 2024-10-24 Python操作Excel库xlrd与xlwt常用操作详解
- 2024-10-24 Python读写Excel表格,就是这么简单粗暴又好用
- 2024-10-24 Python学习之爬取网页信息(python爬取网页数据步骤)
- 2024-10-24 pandas + xlwt制作格式化报表遇到的两个问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)