python xlsx追加数据_python 实现众多excel表格中关键数据追加项目配置库台账.xlsx...
网上已经有很多这类的文章了,今天写这个就算是对今天的写的这个脚本的一个巩固和说明吧,话说同事每个月末都要从大量的excel表格中导出一点点数据并输出到另一个表格中,所以想啊,写个脚本自动化一点吧,不然每次都会浪费时间。
计划有三步:
1、将众多的excel表格的名称输出到namexls文件中
2、根据namexls文件名循环打开xls文件读取相应位置的数据存储到列表里
3、打开要导入的文件并将列表里面的内容存储到excel表格中
很简单
初始模块
#!/bin/env python
import xlrd,xlwt,xlutils,os,sys
# xlrd python从xls读取控件 xlwt python 向xls写入控件 xlutils 是xlrd xlwt的工具箱
#os模块提供对linux操作系统的操作的函数 sys模块负责程序与python解释器的交互
from xlrd import open_workbook
from xlutils.copy import copy
reload(sys)
sys.setdefaultencoding('utf-8')
#设置字符集为utf-8格式并 reload循环加载 为啥要循环加载呢 因为啊每次加载完sys后,setdefaultencoding方法会被删除掉所以要循环加载,you know
1、将众多的excel表格的名称输出到namexls文件中
path = os.getcwd() #获取当前路径
path = (path + '/excel/') #获取众多excel表格路径即当前路径下的excel目录里
f = open('namexls','wb')
for filename in os.listdir(path):
f.write(filename)
f.write('\n')
f.close()
2、根据namexls文件名循环打开xls文件读取相应位置的数据存储到列表里
f = open('namexls')
lines = f.readlines()
for line in lines:
data = xlrd.open_workbook(path + line).strip() #打开xls文件 strip 去掉头尾指定字符
table = data.sheets()[0] #打开xls文件里面第一个表
nrows = table.nrows
ncols = table.ncols #统计第一个表的行数和列数
rownames = table.row_values(2)
rownames1 = table.row_values(3) #过去第一个表里面的第二行值和第三行值分别给 变量rownames rownames1
list1 = []
list2 = [] #定义两个列表用于接受两个变量rownames rowname1的值
for i in range(1,ncols): #i 从1循环到最后一列
if rownames[i]: # 如果第二行里面某列值不为空则执行下面命令
list1.append((rownames[i])) #将第二行各列不为空的值添加到列表list1当中
for i in range(1,ncols): #同理
if rownames1[i]:#同理
list2.append((rownames1[i])) #同理
svnurl = (('url' + list1[2]).strip()+'_SVN') #将字符串和列表list1的第三个元素拼接获取VN库路径
list3 = [] #定义一个空列表来接收list1和list2内某些特定元素
list1[1] = list1[2]
list[2] = svnurl
list3.append(u'项目交付部')
list3.append(list1[1])
list3.append(list1[0])
list3.append(list2[0])
list3.append(list1[2]) # 以上为list1和list2列表中特定元素输出到list3中
3、打开要导入的文件并将列表里面的内容存储到excel表格中
rexcel = open_workbook('项目配置库台账2017.xlsx',formatting_info=True) #打开要输入的excel表格 formatting_info 参数保证原有表格格式不变化
rows = rexcel.sheets()[0].nrows
cols = recel.sheets()[0].ncols #统计表中行数和列数
excel = copy(rexcel) #copy表
table = excel.get_sheet(0) #获取第一张表
j = 0
for i in list3: #i变量循环读取list3里面的数据
table.write(rows,j,i) #对最后一行第j列追加list3的数据i
j += 1 #第一列追加完成后加1对第二列进行追加
row += 1 #namexls文件中第一个xls文件关键数据执行完后换行执行第二个xls文件关键数据
excel.save(''项目配置库台账2017.xlsx) #对文件进行保存操作
至此众多excel表格中关键性数据追加项目配置库台账2017.xlsx完成,每个月只要将众多excel表格放置/home/CMstandingbook/excel 执行CMstandingbook.py 便可实现配置库台账的自动更新
源码如下:
#!/bin/env python
import xlrd,xlwt,xlutils,os,sys
from xlrd import open_workbook
from xlutils.copy import copy
reload(sys)
sys.setdefaultencoding('utf-8')
path = os.getcwd()
path = path +'/excel/'
f = open('namexls','wb')
for fliename in os.listdir(path):
f.write(fliename)
f.write('\n')
f.close()
f = open('namexls')
lines = f.readlines()
for line in lines:
data = xlrd.open_workbook((path + line).strip())
table = data.sheets()[0]
nrows = table.nrows
ncols = table.ncols
colnames = table.row_values(2)
colnames2 = table.row_values(3)
list1 = []
list2 = []
for i in range(1,ncols):
if colnames[i]:
list1.append(colnames[i])
for i in range(1,ncols):
if colnames2[i]:
list2.append(colnames2[i])
svnurl = (('https://111.200.54.229:8443/svn/'+list1[2]).strip()+'_SVN')
list1[1] = list1[2]
list1[2] = svnurl
list3 = []
list3.append(u'项目交付部')
list3.append(list1[1])
list3.append(list1[0])
list3.append(list2[0])
list3.append(list1[2])
rexcel = open_workbook('项目配置库台账2017.xlsx',formatting_info=True)
rows = rexcel.sheets()[0].nrows
cols = rexcel.sheets()[0].ncols
excel = copy(rexcel)
table = excel.get_sheet(0)
print cols
print rows
j = 0
for i in list3:
table.write(rows,j,i)
j += 1
rows +=1
excel.save('项目配置库台账2017.xlsx')
python xlsx追加数据_python 实现众多excel表格中关键数据追加项目配置库台账.xlsx...相关推荐
- python 动态变量 excel 配置_python 实现众多excel表格中关键数据追加项目配置库台账.xlsx...
网上已经有很多这类的文章了,今天写这个就算是对今天的写的这个脚本的一个巩固和说明吧,话说同事每个月末都要从大量的excel表格中导出一点点数据并输出到另一个表格中,所以想啊,写个脚本自动化一点吧,不然 ...
- matlab引用表格命令,如何用matlab引用excel表格数据-matlab如何从excel表格中读取数据?...
怎样利用matlab去读取一个excel表中多个sheet的数... Matlab如何导入excel数据的方法如下: 1.一xlsread()函数,比import简单的多,具体语句: A = xlsr ...
- matlab导入数据作图,如何将excel表格中大量数据导入matlab中并作图:excel表格数据制图软件...
是否有能替代Excel作图表的软件? 我认为数据观你可以试试,因为它提供多种可视化图表,涵盖所有excel提供的图形,您可以进行任何个性化设置. 将excel数据制作成漂亮图表的软件?做图表用什么软件 ...
- mysql数据库导入到excel表格数据_[转载]将EXCEL表格中的数据导入mysql数据库表中(两种方法)...
今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...
- python读取excel表格-python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
- c 语言如何处理表格文件中的数据库,C#程序从Excel表格中读取数据并进行处理
今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...
- java实现读取excel表格中的数据,兼容xls和xlsx
前言 利用 java 实现读取 excel 表格中的数据,兼容 xls 与 xlsx 格式,不用额外做区分,写不同的实现方法. 引入的依赖包 <dependency><groupId ...
- python3读取excel数据-python3 读取Excel表格中的数据
需要先安装openpyxl库 通过pip命令安装: pip install openpyxl 源码如下: #!/usr/bin/python3 #-*- coding:utf-8 -*- import ...
- 用matlab处理表格,matlab删除excel表格数据-如何用matlab处理多个excel表格中的数据...
如何用matlab处理多个excel表格中的数据 biao='D:\Program Files\matlab\bin\filename.xls'; A1=xlsread (biao,'Sheet1', ...
最新文章
- phpmyadmin 忘记密码重设password
- Oralce 使用SQL中的exists 和not exists 用法详解
- 在持续交付阶段中的测试覆盖率(译)
- PMCAFF | 为什么找一款CRM软件那么难?
- ubuntu18.04搭建 kubernetes(k8s)集群
- Document Builder: Error message No virus scan provider available for scanner group CXP_VSCAN
- Typora下载与安装详解
- 美女老师,大数据直播,老师做了什么,让全场尴尬。
- 【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比
- 对计算机课程的意见和建议对老师,对老师教学工作的一点建议和意见(精选5篇)...
- 3399 android root,RK3288/3399 Android Root方法
- 通过Windows批处理脚本批量修改DNS
- 为什么我Redis中key惊现“乱码”?
- AdGuard 无与伦比的广告拦截
- Matlab传统神经网络函数:Newff的使用方法记录
- 有什么好用的拍照翻译软件?拍照翻译软件哪个好用?
- 内网渗透:二、内网渗透的信息收集
- 云电竞的服务器,雷风科技电竞云桌面解决方案
- 落寞身影,光影抹去,烟花寂凉:伤感日志
- Echarts开发地图迁徙动态图(geo-lines)
热门文章
- C/C++ 和 Java 命令行绘制心形图案
- 智能反射面RIS经典论文复现,主被动式波束赋形
- 压铸模具计算机台吨位公式,如何根据产品计算压铸机吨位
- Windows 安装Scoop 教程
- 云计算的概念,发展现状,实现机制,Google云计算原理
- 内网转发——反弹端口
- python邮件客户端_python3之模块SMTP协议客户端与email邮件MIME对象
- WIN7+Ubuntu16.04双系统的安装和各种出现的问题的解决方法,以及GTX1050(NVIDIA显卡)的正确安装步骤(apt-get安装方式)
- 系统文件夹合并在一起怎么办?
- 免费论文检测3000字