python操作excel实用脚本
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实用脚本的更多相关文章
- python 操作excel 的包 函数
###########sample 1 https://blog.csdn.net/chengxuyuanyonghu/article/details/54951399 python操作excel主要 ...
- python - 操作excel表格
说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...
- python操作excel表格(xlrd/xlwt)
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- Python操作Excel
一.系统性学习 对于操作Excel,需要Xlrd/xlwt这两个模块,下面推荐出系统性学习的网址: python操作Excel读写--使用xlrd 官方文档 Python 使用 Xlrd/xlwt 操 ...
- Python操作excel(xlrd和xlwt)
Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...
- Python操作excel表格
用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...
- Python 利用Python操作excel表格之openyxl介绍Part2
利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart() ...
- Python 利用Python操作excel表格之openyxl介绍Part1
利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...
- 【转】python操作excel表格(xlrd/xlwt)
[转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...
随机推荐
- SQL SERVER-Job中Operators搬迁脚本
选中operators按F7,然后选中对象,生成脚本 USE [msdb] GO /****** Object: Operator [DB_ITDESK] Script Date: 5/30/2019 ...
- Qt中C++与QML交互
###main.c部分int main(int argc, char *argv[]){ QString info1 = "xxxxxxxxxxx"; QString ...
- DNS服务——域名解析容错
介绍 DNS服务至关重要,你我每天访问网站不可能是记忆IP地址.因此DNS服务器的可靠性至关重要.下面介绍DNS服务器容错机制,看图 为了防止DNS服务器故障不再提供服务,引入辅助DNS服务器.辅助D ...
- 每日一题-——LeetCode(46)全排列
题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列.输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ...
- HTML&CSS基础-相对定位
HTML&CSS基础-相对定位 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTML源代码 <!DOCTYPE html> <html> &l ...
- ubuntu 修改环境变量(PATH)
1.什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/ ...
- SASS 和 LESS 的区别
1.编译环境不同 SASS 的安装需要 Ruby 环境,是在服务端处理的: LESS 需要引入 less.js 来处理代码输出 CSS 到浏览器,也可以在开发环节使用 LESS,然后编译成 CSS 文 ...
- BZOJ 4316: 小C的独立集
4316: 小C的独立集 思路:先将树上的转移做好.然后环上的转移就是强制最上面的的点选或者不选,然后在环上跑一遍转移就可以了. 代码: #pragma GCC optimize(2) #pragma ...
- k8s的日志
日志 • K8S系统的组件日志 • K8SCluster里面部署的应用程序日志 方案一:Node上部署一个日志收集程序 • DaemonSet方式部署日志收集程序 • 对本节点/var/log ...
- [51Nod 1244] - 莫比乌斯函数之和 & [51Nod 1239] - 欧拉函数之和 (杜教筛板题)
[51Nod 1244] - 莫比乌斯函数之和 求∑i=1Nμ(i)\sum_{i=1}^Nμ(i)∑i=1Nμ(i) 开推 ∑d∣nμ(d)=[n==1]\sum_{d|n}\mu(d)=[n== ...