import xlrd

 data = xlrd.open_workbook('/home/ppe/workspace/pythonwp/tianranqi_org.xls')

 table = data.sheets()[0]
nrows = table.nrows #行数
ncols = table.ncols #列数 print('工作薄 行数: {} 列数: {}'.format(table.nrows,table.ncols)) colnames = table.row_values(0) #某一行数据
dict_t = {}
for rownum in range(1,nrows):
if rownum <= 3:
continue row = table.row_values(rownum)
if row:
# print('{}, {}'.format(rownum,row)) if row[7] == '√':
jinqifangxiang = ''
else:
jinqifangxiang = ''
# print('--> 序号:{}, 房间号:{}, 表号:{}, 进气口:{}, 卡缄口:{}'.format(row[0],row[5], row[6], jinqifangxiang, row[13]))
newrow = {} newrow[0] = int(row[5]) # 户号
newrow[1] = row[6] # 表号
newrow[2] = jinqifangxiang # 进气口
newrow[3] = int(row[13]) # 卡缄口
# print(newrow) dict_t[newrow[0]] = newrow print(dict_t)
打印: {507: {0: 507, 1: '0201623502', 2: '01', 3: 18886663}, 506: {0: 506, 1: '0201623671', 2: '01', 3: 18886571}}
 import xlrd
import re
from xlwt import *
from xlutils.copy import copy xlsfile = '/home/ppe/workspace/pythonwp/meter'
# 读取要写入文件
xls_dst = xlrd.open_workbook(xlsfile + '.xls')
table = xls_dst.sheets()[0] print('工作薄 行数: {} 列数: {}'.format(table.nrows,table.ncols)) for i in range(1,table.nrows):
row = table.row_values(i) if row:
# print('{}, '.format(i), row) # 使用正则表达式,求出户号
house_num = row[1]
p = re.compile('河南省郑州市高新区迎春街与雪松路交叉口西北角朗悦V公馆一期7栋A单元(.*)层(.*)室')
no = p.findall(house_num)
# print(no[0]) hnum = '{}{}'.format(no[0][0],no[0][1])
# print(hnum)
# print(dict_t[int(hnum)])
# print(dict_t[int(hnum)][1]) # 写入指定单元格
row_index = i
col_index = 2
ctype = 1 # 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
value = dict_t[int(hnum)][1]
xf = 0 # 格式化扩展
ret = table.put_cell(row_index, col_index, ctype, value, xf) # 写入指定单元格
row_index = i
col_index = 3
ctype = 1 # 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
value = dict_t[int(hnum)][1]
xf = 0 # 格式化扩展
ret = table.put_cell(row_index, col_index, ctype, value, xf) # 写入指定单元格
row_index = i
col_index = 7
ctype = 1 # 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
value = dict_t[int(hnum)][2]
xf = 0 # 格式化扩展
ret = table.put_cell(row_index, col_index, ctype, value, xf) # 写入指定单元格
row_index = i
col_index = 27
ctype = 1 # 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
value = str(dict_t[int(hnum)][3])
xf = 0 # 格式化扩展
ret = table.put_cell(row_index, col_index, ctype, value, xf) #保存xlsfile
wb = copy(xls_dst)
wb.save(xlsfile + '_new.xls')

需求和截图如下:

填写C/D/E/H/AB五列,C列和D列一样,都是表号;E列如实填写气表底数;H列进气方向:01是左进,02是右进,系统默认的是01,请把右进的修改成02; 最右边的AB列封缄号一列别忘了,就是封签号。

原始表:

目标表:

完成效果:

python操作excel实用脚本的更多相关文章

  1. python 操作excel 的包 函数

    ###########sample 1 https://blog.csdn.net/chengxuyuanyonghu/article/details/54951399 python操作excel主要 ...

  2. python - 操作excel表格

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  3. python操作excel表格(xlrd/xlwt)

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

  4. Python操作Excel

    一.系统性学习 对于操作Excel,需要Xlrd/xlwt这两个模块,下面推荐出系统性学习的网址: python操作Excel读写--使用xlrd 官方文档 Python 使用 Xlrd/xlwt 操 ...

  5. Python操作excel(xlrd和xlwt)

    Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...

  6. Python操作excel表格

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...

  7. Python 利用Python操作excel表格之openyxl介绍Part2

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart()    ...

  8. Python 利用Python操作excel表格之openyxl介绍Part1

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...

  9. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

随机推荐

  1. springboot系列(九)springboot使用druid数据源

    Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...

  2. Android笔记(十一) Android中的布局——网格布局

    网格布局是Android4.0新增的布局管理器,因此需要在Android4.0之后的版本才可以使用,之前的平台使用该布局的话,需要导入相应的支持库. GridLayout的作用类似于HTML中的tab ...

  3. jar命令详解

    原文链接:https://www.cnblogs.com/anyehome/p/9435371.html JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的, ...

  4. Codeforces Round 582

    Codeforces Round 582 这次比赛看着是Div.3就打了,没想到还是被虐了,并再次orz各位AK的大神-- A. Chips Moving 签到题.(然而签到题我还调了20min--) ...

  5. Codeforces Round #524 (Div. 2) Masha and two friends矩形

    题目 题意:    给一个n*m块大的黑白相间的矩形,在这个举行中操作,要先把第一个矩形(左下角坐标(x1,y2),右上角坐标(x2,y2)) 全部涂成白色,再把第二个矩形(左下角坐标(x3,y3), ...

  6. linux网络编程之socket编程(十二)

    今天继续学习socket编程,期待的APEC会议终于在京召开了,听说昨晚鸟巢那灯火通明,遍地礼花,有点08年奥运会的架势,有种冲动想去瞅见一下习大大的真容,"伟大的祖国,我爱你~~~&quo ...

  7. 使用bootstrap的栅格布局,用row后出现横向滚动条

    原因: **row默认有:margin-left:-15px; margin-right:-15px: 解决办法: **row外层需要包裹container或者container-fluid,一句话就 ...

  8. python - pycharm 配置虚拟环境出现的中文命名问题

    说一个困扰我很久的问题,当使用 pycharm 配置新的虚拟环境想要与之前的环境隔离的时候,正常的点击 New Project 创建项目时,不勾选 Inherit global site-packag ...

  9. MySql存储过程参考

    Mysql(9)---纪录一次实际开发过程中用到的复杂存储过程 为了尽可能的还原当时为什么需要用到存储过程,下面我写了个详细的文档,我们可以从需求文档出发来分析. 有关存储过程之前也写了两篇文章来做铺 ...

  10. snmp_trap/snmptt

    Zabbix Snmp Trap 配置 1. Zabbix Server 操作 1.1 Snmp Trap 安装配置 yum install -y net-snmp net-snmp-utils vi ...