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. python词云图之WordCloud

    1. 导入需要的包package import matplotlib.pyplot as plt from scipy.misc import imread from wordcloud import ...

  2. Sqlserver2008[索引]

    SQL索引有两种:聚集索引.非聚集索引 目的:提高sqlserver 系统的性能,加快数据的查询速度与减少系统的响应时间 注意点:一个表只能有一个聚集索引,但可以有多个非聚集索引 索引的存储机制: 聚 ...

  3. 子div撑不开父div的几种解决办法:

    如何修正DIV float之后导致的外部容器不能撑开的问题   在写HTML代码的时候,发现在Firefox等符合W3C标准的浏览器中,如果有一个DIV作为外部容器,内部的DIV如果设置了float样 ...

  4. ubuntu安装anaconda3+tensorflow(cpu)+pycharm(windows几乎一样)

    网上乱七八糟有的都是别人怎么写自己也怎么写,其实很简单. 首先是anaconda3的安装: 直接上官网:https://www.anaconda.com/download/ 下载下来之后进入文件所在目 ...

  5. Tomcat 安装配置

    操作系统:win10 家庭版 1. 官网下载 https://tomcat.apache.org/download-80.cgi 我下载的免安装装. 2.文件解压到目录 D:\Program File ...

  6. 如何使用Jmeter批量构造MySQL测试数据

    前言: 当我们进行API测试.Web Service或者其他系统模块测试时,你可能需要从数据库获取并记录数据.这些测试的目的是检查数据库中指定的数据,或者向数据库添加指定的数据,这篇文章会展示使用JM ...

  7. Git---报错:git Please move or remove them before you can merge 解决方案

    场景: 当前在本地仓库lucky,因修改了123.txt的文件内容,需要将lucky分支push到远程Git库,在push前有其他的同事已删除了远程Git库中的123.txt文件.因此这时就产生了远程 ...

  8. DNS工作流程及原理 域名、IP与DNS的关系

    转自:http://blog.csdn.net/maminyao/article/details/7390208 一.DNS服务概述 DNS是Domain Name System的缩写,即域名系统.其 ...

  9. [cf920G][容斥原理+二分]

    https://codeforc.es/contest/920/problem/G G. List Of Integers time limit per test 5 seconds memory l ...

  10. 洛谷 P1076 寻宝 题解

    今天又TM考试了...... 这是T1,然后我模拟20分滚粗. Analysis 在每层的时候用编号%这层可以上楼的房间个数就行了. #include<iostream> #include ...