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

我要操作的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')#创建sheet goods = 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 row
for 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 + 1
row =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')#创建sheet goods = 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 r
r +=1
# 取出有多少行
row = len(row_list)
sheet = sheet+1
print 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 r
r +=1
sheet=sheet+1
# print row
for 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,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+1
index = index + 1
row =row-1
wb.save('example3.xls')

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

xlrd,xlwt操作Excel实例的更多相关文章

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

    python第三方库——xlrd和xlwt操作Excel文件学习 1安装: C:\Users\Lenovo>pip install xlwtCollecting xlwt  Downloadin ...

  2. C#开发中使用Npoi操作excel实例代码

    C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...

  3. xlrd》操作excel 出现的问题:File "D:\python37\lib\site-packages\xlrd\formula.py", line 1150, in evaluate_name_formula assert len(tgtobj.stack) == 1

    xlrd>操作excel  出现的问题 报错如下: D:\python37\python.exe D:/testWang/waimai/tools/get_excelData.py*** for ...

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

    python读excel——xlrd 这个过程有几个比较麻烦的问题,比如读取日期.读合并单元格内容.下面先看看基本的操作: 首先读一个excel文件,有两个sheet,测试用第二个sheet,shee ...

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

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

  6. xlrd、xlwt 操作excel表格详解

    转自:https://www.cnblogs.com/jiablogs/p/9141414.html python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是 ...

  7. python中使用xlrd、xlwt操作excel

    python 对 excel基本的操作如下: # -*- coding: utf-8 -*- import xlrd import xlwt from datetime import date,dat ...

  8. Python-利用xlrd模块操作excel

    在工作中,无论是数据分析,还是批量导入数据,都会去操作excel,当然,数据分析有数据分析的方法,而我在开发中涉及到的是批量导入excel中的数据, 接下来介绍下如何利用python的xlrd模块来读 ...

  9. python xlrd,xlwt 读写excel文件

    python 读excel文件,需要xlrd库.下载地址:https://pypi.python.org/pypi/xlrd python 写excel文件,需要xlwt库.下载地址:https:// ...

随机推荐

  1. Centos6.X 安装MongoDb

    1.查看linux版本,之所以查看linux版本,是因为centos7和以前版本用的防火墙不一样,安装完mongodb后,需要关闭防火墙(或者其他方法,专业运维人员使用,我们这里为简单,直接关闭即可) ...

  2. ARM与X86架构的对决[整编]

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是  CISC要用最少的机器语言 ...

  3. android打包library

    最近在做开发时,遇到一个需求,就是要自定义一个控件,最后需要将其打包成android library库,然后供以后其他需求使用,由于以前很少打包library,所以这次特地学了下怎么打包. 首先先随便 ...

  4. String.Join

    在指定 String 数组的每个元素之间串联指定的分隔符 String,从而产生单个串联的字符串.(来源于MSDN) 有两个重载函数:[C#]public static string Join(   ...

  5. MATLAB中的文件类型总结

    %   ***.m文件 : 脚本文件或者函数文件或者:%   ***.mat文件:数据存储文件(二进制文件,可以ASCII码形式保存和加载,%                类似于单行EXCEL表格) ...

  6. js漂亮的弹出层

    1.漂亮的弹出层----artDialog http://aui.github.io/artDialog/ 2.弹出层 ------layer http://sentsin.com/jquery/la ...

  7. SurvivalShooter学习笔记(七.玩家射击)

    玩家射击:(这个脚本放在玩家的空子物体上,这个位置为枪口位置) 点击鼠标,玩家射击: 射击枪口发光,射击通过射线,方向有激光效果:(关于射线不明白可以参考Unity射线相关) 射击有射击音效 射击有每 ...

  8. 模拟ORA-26040: Data block was loaded using the NOLOGGING option

    我们知道通过设置nologging选项.能够加快oracle的某些操作的运行速度,这在运行某些维护任务时是非常实用的,可是该选项也非常危急,假设使用不当,就可能导致数据库发生ORA-26040错误. ...

  9. iOS-iOS9.Plist插入网络安全xml

    //iOS9 设置网络 Plist文件 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsAr ...

  10. leveldb学习笔记

    LevelDB由 Jeff Dean和Sanjay Ghemawat开发. LevelDb是能够处理十亿级别规模Key-Value型数据持久性存储的C++ 程序库. 特别如下: 1.LevelDb是一 ...