把有合并单元格的信息读取出来,输出所在层数与位置

我要操作的Excel是这样的

要的到的是这样的效果

# -*- coding: utf-8 -*-
import xlrd
import xlwt
r=1
# shxrange = range(bk.nsheets)
wb = xlwt.Workbook(encoding='utf-8')#创建工作簿,设置字符编码
ws = wb.add_sheet('A TEST Sheet')#创建sheetgoods = xlrd.open_workbook('test3.xlsx')#打开文件
index = 0
for sheet_index in range(goods.nsheets):sh = goods.sheet_by_index(sheet_index)#返回第几页的对象#添加内容到row_list当中row_list = []for rx in range(sh.nrows):if sh.row(rx)[0].ctype:print sh.row(rx)row_list.append(sh.row_values(rx))# 取出有多少行row = len(row_list)# print rowfor r in range(row):weizhi =1 for c in range(len(row_list[r])):if row_list[r][c]:ws.write(index, 0, row_list[r][c])ws.write(index,3,row)ws.write(index,4,weizhi)index = index + 1row =row-1
wb.save('example3.xls')

需要这样操作的数据有很多,就要分为多个sheet页,每个sheet页包含一个要操作的数据,这样的话就可以把每个sheet页重新数层数,如果不需要也可以写在一个sheet页当中,要批量处理就分多个sheet页

要处理的数据和上面差不多,不过稍微麻烦一点

要处理的数据分为两个sheet页
sheet页1

sheet页2

要处理的数据是通过sheet1页每个单元格数据*前面的第一个数字找到sheet2页对应的行号,这样的数据太难看了,想要得到这样的数据

# -*- coding: utf-8 -*-
import xlrd
import xlwt
r=1
# shxrange = range(bk.nsheets)
wb = xlwt.Workbook(encoding='utf-8')#创建工作簿,设置字符编码
ws = wb.add_sheet('A TEST Sheet')#创建sheetgoods = xlrd.open_workbook('test10.xlsx')#打开文件
index = 0
sheet = 0
for sheet_index in range(goods.nsheets/2):sh = goods.sheet_by_index(sheet)#返回第1页的对象print sheet#添加内容到row_list当中row_list = []for rx in range(sh.nrows):#第一行为当前页的分类if sh.row(rx)[0].ctype:# print sh.row(rx)row_list.append(sh.row_values(rx))else:# print rr +=1# 取出有多少行row = len(row_list)sheet = sheet+1print sheet#将第二页的内容添加到con_list当中con_list = []sh = goods.sheet_by_index(sheet)#返回第几页的对象for rx in range(sh.nrows):#第一行为当前页的分类# if rx ==0:#   fenglei = sh.row_values(rx)# else:if sh.row(rx)[0].ctype:# print sh.row(rx)con_list.append(sh.row_values(rx))else:print rr +=1sheet=sheet+1# print rowfor r in range(row):weizhi = 1for c in range(len(row_list[r])):if row_list[r][c]:ws.write(index, 0, row_list[r][c])# ws.write(index,10,fenglei)ws.write(index,3,row)ws.write(index,4,weizhi)try:ws.write(index,2,con_list[int(row_list[r][c].split("*")[0])-1][0])try:ws.write(index,5,con_list[int(row_list[r][c].split("*")[0])-1][1])except:ws.write(index,5,500)try:ws.write(index,6,con_list[int(row_list[r][c].split("*")[0])-1][2])except:ws.write(index,6,500)ws.write(index,7,row_list[r][c].split("*")[1])ws.write(index,8,row_list[r][c].split("*")[2])ws.write(index,9,'hgyingliao'+str(sheet))except:ws.write(index,5,500)ws.write(index,6,500)ws.write(index,7,500)ws.write(index,8,500)ws.write(index,9,'hgyingliao'+str(sheet))weizhi =weizhi+1index = index + 1row =row-1
wb.save('example3.xls')

每两个sheet页为单位进行处理

转载于:https://www.cnblogs.com/wuqingzangyue/p/5453360.html

xlrd,xlwt操作Excel实例相关推荐

  1. python+xlrd+xlwt操作excel

    介绍 xlrd(读操作),xlwt(写操作) 上述软件下载后,分别解压,之后在cmd命令下分别进入对应的目录中运行 python setup.py install 如果运行过程中提示缺少setupto ...

  2. python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作

    一.创建excel代码 备注:封装好了(可直接调用) """ -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :J ...

  3. xlrd和xlwt操作Excel文件

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

  4. python模块xlwt怎么用不了_python中使用 xlwt 操作excel的常见方法与问题

    前言 python可以操作excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的) python中使用xlwt操作excel非常方,和Java使用调框架apache poi相 ...

  5. python xlwt操作excel

    python xlwt操作excel posted on 2018-04-18 14:46 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs ...

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

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

  7. xlrd,xlwt操作excel个人总结 自动化办公

    用xlrd读取excel 温馨提示 新版本xlrd 和xlwt 无法打开 xlsx文件.需要下载1.2.0版本 pip install xlrd==1.2.0 pip install xlwt==1. ...

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

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

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

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

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

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

最新文章

  1. Android画图之Matrix(一)
  2. boost::mpl模块实现push_back相关的测试程序
  3. for遍历list scala_面试官问:List 如何一边遍历,一边删除?
  4. 第一份正式工作-华为外包。
  5. [蓝桥杯][2017年第八届真题]k倍区间(数学+思维)
  6. oracle 日志丢失,Oracle联机日志文件丢失解决方法一例
  7. 如何使一维数组一行一行的输出成二维数组的格式
  8. 自定义PopupWindow 怎么设置PopupWindow的宽度充满全屏宽度
  9. 字符串:2.BF算法(普通模式匹配算法)
  10. angular 上传图像的使用总结
  11. mysql安装 linux rpm_linux MySQL5.7 rpm安装
  12. linux服务器配置与管理_一个十多年的系统管理员,忘了如何管理一台服务器
  13. ASP.NET连接数据库实现登录和注册
  14. Q-Fish 升级技嘉主板BIOS
  15. 分享CFA二级优质复习方法!
  16. TableWidget表格绘制常用函数
  17. 10个值得推荐的免费设计模板网站
  18. 飞机实时动态查询接口代码调用服务
  19. 用Python把它做出来:EXCEL文件合并/拆分工具 (含VBA版)
  20. Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..

热门文章

  1. Modular Inverse(zoj3609+欧几里德)
  2. Entity FrameWork利用Database.SqlQueryT执行存储过程并返回参数
  3. flex2.0 asp.net
  4. Java 操作符 小结
  5. 图像分割方法及性能评价综述
  6. Wave Arts Tube Saturator for Mac(电子管模拟效果器插件)
  7. Notefile for Mac(记事本工具)支持12系统
  8. 克隆 Ubuntu 1804后续操作:修改用户名、主机名和组名
  9. 搭建Yum服务器及编译安装Httpd实验
  10. Java汉字md5值不一致问题