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. syzkaller安装

    初始环境配置 sudo apt-get install subversion sudo apt-get install g++ sudo apt-get install git sudo apt in ...

  2. C实现哈希表

    1 哈希表原理 这里不讲高深理论,只说直观感受.哈希表的目的就是为了根据数据的部分内容(关键字),直接计算出存放完整数据的内存地址. 试想一下,如果从链表中根据关键字查找一个元素,那么就需要遍历才能得 ...

  3. P3197 [HNOI2008]越狱[组合数学]

    题目来源:洛谷 题目描述 监狱有连续编号为 1…N 的 N 个房间,每个房间关押一个犯人,有 M 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生 ...

  4. Sql Server2008——远程过程调用失败

    今天正在敲机房,清理软件提醒垃圾太多并且电脑也特别卡,我就想着既然这样就清理一下得了,结果就是:No zuo No die,SQL server数据库连接不上了.不过从另一方面来说这也是一次学习的机会 ...

  5. mali tbr Forward Pixel Kill

    https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66 ...

  6. 简介WEB应用服务器TONCAT

    1.HTTP与Tomcat简介1.1 什么是Http协议HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的 一种网络协议.所有的WWW文件都必须 ...

  7. mac上安装Nginx详细教程

    1. 安装(可以用 brew 安装) sudo brew install nginx 2. 查看 nginx 版本 nginx -v 3. 启动 nginx sudo nginx 1也可以使用下面的命 ...

  8. 专为简化 C 开发而设计的编程语言 Trad

    Trad 是一个专为简化 C 开发而设计的编程语言,它: 基于 C: 经编译器编译后能得到干净可读的标准 C 代码,其与 C 的关系就像 TypeScript 与 JavaScript 一样 专为 U ...

  9. vue jqury如何获取元素中的属性

    1.点击事件获取 点击事件通过传值得方式 <el-button type="danger" round @click="delHander($event)" ...

  10. Jmeter之JSON Extractor

    SON Extractor的作用: 对于处理json格式的response,使用SON Extractor来提取数据是更方便的.  SON Extractor语法: 同时提取多个数据: Names o ...