首页 / 更多教程 / 29. 读写excel文件
29. 读写excel文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了29. 读写excel文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2966字,纯文字阅读大概需要5分钟。
内容图文
![29. 读写excel文件](/upload/InfoBanner/zyjiaocheng/1001/1c945e8e8d55438080171e85881040a0.jpg)
Excel是日常办公中使用最频繁的软件之一,其数据格式为xls、xlsx,是一种非常常用的电子表格。例如:
姓名 语文 数学 英语 李雷 95 99 96 韩梅 98 100 93 张峰 94 95 95 ...
要求:使用Python读写excel,添加“总分”列,计算每人总分。
解决方案:
使用第三方库xlrd和xlwt分别读写excel,需要pip3安装这两个库:pip3 install xlrd xlwt
。
- 对于xlrd库:
>>> import xlrd>>> book = xlrd.open_workbook('demo.xlsx') #打开xlsx文件>>> book<xlrd.book.Book object at 0x7fec40a26278>
>>> book.sheets() #获取所有sheet表单对象[<xlrd.sheet.Sheet object at 0x7f4566ccb9b0>]>>> book.sheet_by_index(0) #通过索引序号获取sheet表单对象<xlrd.sheet.Sheet object at 0x7f4566ccb9b0>>>> book.sheet_by_name('Sheet1') #通过表单名获取sheet表单对象<xlrd.sheet.Sheet object at 0x7f4566ccb9b0>
>>> sheet = book.sheet_by_index(0)>>> sheet.nrows #获取表单行数4>>> sheet.ncols #获取表单列数4
>>> c00 = sheet.cell(0, 0) #获取具体行列(单元格)的值>>> c00 text:'姓名'>>> type(c00)<class 'xlrd.sheet.Cell'>>>> c00.ctype1>>> c00.value'姓名'>>> xlrd.XL_CELL_ xlrd.XL_CELL_BLANK xlrd.XL_CELL_DATE xlrd.XL_CELL_ERROR xlrd.XL_CELL_TEXT xlrd.XL_CELL_BOOLEAN xlrd.XL_CELL_EMPTY xlrd.XL_CELL_NUMBER
常用单元格中的数据类型:
0:empty(空的);1:string(text);2:number;3:date;4:boolean;5:error;6:blank(空白表格)
>>> sheet.row(0) #获取对应行的值[text:'姓名', text:'语文', text:'数学', text:'英语']>>> sheet.col(0) #获取对应列的值[text:'姓名', text:'李雷', text:'韩梅', text:'张峰']>>> sheet.row_values(0)['姓名', '语文', '数学', '英语']>>> sheet.col_values(0)['姓名', '李雷', '韩梅', '张峰']>>> sheet.row_values(1, 1) #可切片,两个1分别表示行索引、列索引[95.0, 99.0, 96.0]
>>> sheet.put_cell(0, sheet.ncols, xlrd.XL_CELL_TEXT, '总分', None) #增加单元格,0为行索引,sheet.ncols为列索引,数据类型为text
- 对于xlwt库:
>>> import xlwt>>> wbook = xlwt.Workbook()>>> wsheet = wbook.add_sheet('test') #增加表单,表单名为test>>> wsheet.write(0, 0, 'abc') #表单0行0列写入abc>>> wsheet.write(0, 1, 100) #表单0行1列写入100>>> wbook.save('test.xlsx') #保存为test.xlsx
此时导出到桌面,就可以看到该xlsx文件中的数据。
- 方案示例:
demo.xlsx:
姓名 语文 数学 英语 李雷 95 99 96 韩梅 98 100 93 张峰 94 95 95
import xlrd, xlwt rbook = xlrd.open_workbook('demo.xlsx')rsheet = rbook.sheet_by_index(0)k = rsheet.ncols rsheet.put_cell(0, k, xlrd.XL_CELL_TEXT, '总分', None)for i in range(1, rsheet.nrows): t = sum(rsheet.row_values(i, 1)) rsheet.put_cell(i, k, xlrd.XL_CELL_NUMBER, t, None)wbook = xlwt.Workbook()wsheet = wbook.add_sheet(rsheet.name)for i in range(rsheet.nrows): for j in range(rsheet.ncols): wsheet.write(i, j, rsheet.cell_value(i, j))wbook.save('out.xlsx')
out.xlsx:
姓名 语文 数学 英语 总分 李雷 95 99 96 290 韩梅 98 100 93 291 张峰 94 95 95 284
内容总结
以上是互联网集市为您收集整理的29. 读写excel文件全部内容,希望文章能够帮你解决29. 读写excel文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。