EXCEL-横向数据转换成纵向数据-python脚本实现

来源:互联网 发布:mac pscc2017怎么破解 编辑:程序博客网 时间:2024/05/15 16:57

为了帮助一学妹转换数据,于是今天花了些时间来写这个脚本,话说python真是强大,EXCEL的数据都能轻易操控,本来想用JAVA API写的,但是考虑到JAVA实在是有点麻烦,于是找了一个python脚本现学现卖了。废话写完了,进入正题。  

用的是python2.x的版本    用了两个库   import xlrd      import xlwt     

下载下来之后    DOS命令下进入解压文件夹       python setup.py install        分别对两个库做一次   两个库就加入到python的lib中去了


在建立一个python的文件夹,将EXCEL文件放入,就可以不用管读写路径的问题了。


import xlrd  #这个库是读数据
import xlwt #这个库是写数据


data = xlrd.open_workbook('888.xlsx')   


file = xlwt.Workbook()                #这里必须是Workbook()
table111 = file.add_sheet('sheet111',cell_overwrite_ok=True)    


table = data.sheets()[0]
nrows = table.nrows        #这是统计数据的行号


list2 = []
list2 = table.row_values(5)   #这是讲第五行的数据取出 放在list中,list即为数组


list1 = []
list1 = table.row_values(6)
for i in range(1,7):                                  #range(1,7)表示   只循环1,2,3,4,5,6
  table111.write(i-1,0,list1[0])          
  table111.write(i-1,1,list2[i])
  table111.write(i-1,2,list1[i])
  table111.write(i-1,3,list1[i+6])
  table111.write(i-1,4,list1[i+12])
  table111.write(i-1,5,list1[i+18])
  table111.write(i-1,6,list1[i+24])
  table111.write(i-1,7,list1[i+30])

#插一句,python中是没有java的自加自减的~  所以只能使用别的方法代替


list1 = []
list1 = table.row_values(7)
for i in range(7,13):
  table111.write(i-1,0,list1[0])
  table111.write(i-1,1,list2[i])
  table111.write(i-1,2,list1[i-6])
  table111.write(i-1,3,list1[i])
  table111.write(i-1,4,list1[i+6])
  table111.write(i-1,5,list1[i+12])
  table111.write(i-1,6,list1[i+18])
  table111.write(i-1,7,list1[i+24])



file.save('demo.xls')   #将写完的数据 一次性flush到指定文件中,保存下来

2 0
原创粉丝点击