微信公众号:数据运营人
本系列为博主的读书学习笔记,如需转载请注明出处。

当提起数据处理,一般情况下我们都可以用python中的pandas完成,但是当我们发现一些不规则的excel数据,所谓不规则如单元格存在合并等情况,像公司的财务报表数据等,我们可以利用python中的xlrd和xlwt模块对该类数据进行处理。即xlrd是读excel,而xlwt是写excel。

xlrd打开文件获取sheet根据sheet索引或者名称获取sheet内容获取sheet名称、行数、列数获取指定单元格的内容获取特定单元格的数据内容xlwt

xlrd


打开文件
workbook = xlrd.open_workbook(r'C:/Users/Admin/Desktop/students.xlsx')
获取sheet
print(workbook.sheet_names())print(workbook.nsheets)

['Sheet1', 'Sheet2', 'Sheet3']
3

根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(0)sheet3 = workbook.sheet_by_name('Sheet1')
获取sheet名称、行数、列数
print(sheet2.name)print(sheet2.nrows)print(sheet2.ncols)print(sheet3.name)print(sheet3.nrows)print(sheet3.ncols)

Sheet1
28
22
Sheet1
28
22

获取指定单元格的内容
print(sheet3.row_values(0)) # 获取第一行print(sheet3.col_values(0)) # 获取第一列print(sheet3.cell(2, 1).value)print(sheet3.cell_value(1, 1))print(sheet3.row(1)[0].value)

['竞赛学生及指导教师奖励明细', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
['竞赛学生及指导教师奖励明细', '序号', '', 0.0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '注:在校未毕业学生请提供一卡通账号,离校学生提供建设银行卡号及开户行\n在职教师请提供工号,兼职教师若有工号请提供工号及银行卡号和开户行;离职教师请提供银行卡号及开户行', '', '']
分院
序号

获取特定单元格的数据内容
print(sheet3.cell(2, 0).ctype)print(sheet3.cell(1, 1).ctype)# 说明 ctype:0 empty, 1 string, 2 number, 3 date, 4 boolean, 5 error

0
1

xlwt

实现该格式excel的数据的设计


def set_style(name, height, bold=False):style = xlwt.XFStyle() # 初始化样式font = xlwt.Font() # 为样式创建字体font.name = name # 'Times New Roman'font.bold = boldfont.color_index = 4font.height = heightstyle.font = fontreturn style

# 写exceldef write_excel():f = xlwt.Workbook() # 创建工作簿'''创建第一个sheet:sheet1'''sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True) # 创建sheetrow0 = [u'业务', u'状态', u'北京', u'上海', u'广州', u'深圳', u'状态小计', u'合计']column0 = [u'机票', u'船票', u'火车票', u'汽车票', u'其它']status = [u'预订', u'出票', u'退票', u'业务小计']# 生成第一行for i in range(0, len(row0)):sheet1.write(0, i, row0[i], set_style('Times New Roman', 220, True))

# 生成第一列和最后一列(合并4行)i, j = 1, 0while i < 4 * len(column0) and j < len(column0):sheet1.write_merge(i, i + 3, 0, 0, column0[j], set_style('Arial', 220, True)) # 第一列sheet1.write_merge(i, i + 3, 7, 7) # 最后一列"合计"i += 4j += 1

sheet1.write_merge(21, 21, 0, 1, u'合计', set_style('Times New Roman', 220, True))# 生成第二列i = 0while i < 4 * len(column0):for j in range(0, len(status)):sheet1.write(j + i + 1, 1, status[j])i += 4

f.save(r'C:/Users/Admin/Desktop/demo1.csv') # 保存文件

if __name__ == '__main__':write_excel()

转载于:https://www.cnblogs.com/ly803744/p/10426548.html

利用python中的xlrd和xlwt操作excel相关推荐

  1. 【转】经典!python中使用xlrd、xlwt操作excel表格详解

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  2. python中使用xlrd、xlwt操作excel表格详解

    近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&qu ...

  3. python第三方库——xlrd和xlwt操作Excel文件学习

    一.xlrd和xlwt的安装 xlrd和xlwt是python的第三方库,所以是需要自己安装的,可以在python的官网https://pypi.python.org/pypi下载该模块来安装,也可以 ...

  4. xlrd和xlwt操作Excel文件

    DAY8 xlrd和xlwt操作Excel文件 一.xlrd获取文件内容 1.打开excel文件 import xlrd wb = xlrd.open_workbook('files/data1.xl ...

  5. Python自动化办公——xlrd、xlwt读写Excel

    一.xlrd.xlwt读写Excel 1.读操作 import xlrd# 1.打开工作本workbook xlsx = xlrd.open_workbook(r'.\7月下旬入库表.xlsx')# ...

  6. python xlwt xlrd_用xlrd和xlwt操作Excel文档

    工作当中经常要操作excel文档,有些完全是纯粹的重复劳动.在我的工作中就遇到这样一个需求: 1. 存在两个excel文档(source.xls/target.xls),列数据是一致的 2. 文档so ...

  7. 树莓派python安装xlwt_利用python包(xlrd和xlwt)处理excel

    一 读取excel 这里介绍一个不错的包xlrd ,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文件. 下载http://pypi.python.org/pypi/xlrd 首先 ...

  8. Python xlrd和xlwt操作Excel实现自动化

    ​ ​ 活动地址:CSDN21天学习挑战赛 目录 一.7大库优缺点对比 二.xlrd读取Excel表 1.安装xlrd模块 2.xlrd读取Excel表 1)打开Excel表 2)获取全部表名 3)指 ...

  9. python扩展库xlwt支持对_python第三方库——xlrd和xlwt操作Excel文件学习

    一.xlrd和xlwt的安装 xlrd和xlwt是python的第三方库,所以是需要自己安装的,可以在python的官网https://pypi.python.org/pypi下载该模块来安装,也可以 ...

最新文章

  1. TCP/IP协议与UDP协议的区别
  2. Spring MVC 中 HandlerInterceptorAdapter过滤器的使用
  3. 30岁前,一定要完成哪些人生规划?
  4. Flash MX本地保存数据的三种方法
  5. 【原理分析】细说SpringBoot的自动装配原理
  6. WPS国际版2019 中文
  7. labview利用USB-6341数据采集卡采集发动机传感器信号(总结篇)
  8. 做视频后期剪辑用什么软件好?4款常用软件推荐
  9. 思科交换机IOS备份和升级
  10. 前端Html的全新认识
  11. DataStory·2017大数据商业创新论坛(上海站)圆满结束
  12. TBR:AWS不是云计算领导者,Microsoft才是
  13. 【备忘】传智播客ios第五期
  14. numpy_2(多维数组降为一维reval,flatten)
  15. 10家不同商店50种不同商品销售量预测数据
  16. 毕业设计 - 个人博客系统的设计与实现【源码+论文】
  17. 新手小白如何入坑黑客技术(黑客入门教程)
  18. SpamAssassin白名单和黑名单选项
  19. linux下.run文件的安装与卸载
  20. struts2中的s标签解析

热门文章

  1. Linux(8) —— grep命令
  2. wasm-simd入门(卷积指令)
  3. Linux下redis安装与使用
  4. einops包中的rearrange,reduce, repeat及einops.layers.torch中的Rearrange,Reduce。对高维数据的处理方式
  5. tf记录 之 tf.boolean_mask函数
  6. mysql 出现错误 Duplicate entry for key PRIMARY 解决办法
  7. LTS计算机,Pine64单板计算机(SBC)和模块入门
  8. java信用分秒杀系统设计思路,秒杀系统设计思路
  9. 深入理解connect by
  10. mysql从zip包安装小记