用到了两个库,xlrd和xlwt
xlrd是读excel,xlwt是写excel的库
1)xlwd用到的方法:
xlwt.Workbook()是创建了一个空文件对象
.add_sheet()为空文件对象,是在该文件中建立一个工作表,并返回工作表对象
.write(row,col,data)为工作表对象,表示在第row+1行第col列添加data数据
.save('文件名.xls')为空文件对象,最后保存。
2)xlrd用到的方法:
打开excel文件读取数据
data = xlrd.open_workbook('文件名.xls')
常用代码:
#通过名称获取 table = data.sheet_by_name(u'Sheet1')
获取整行和整列的值(数组)
table.row_values(i)
table.col_values(i)
获取行数和列数
nrows = table.nrows
ncols = table.ncols
==========下面是就是实现代码=================
1 import xlwt 2 import xlrd 3 # 一:.Workbook 创建工作簿,目前空白 4 5 testbook = xlwt.Workbook(encoding='utf-8') 6 # 二:创建sheet页即工作表,对象是工作簿 7 test_sheet = testbook.add_sheet('新新人类') 8 # 三:写入数据,1、下面是从别的文件读取的数据,所以先打开一个文件 9 data1 = xlrd.open_workbook('C:\Users\ccccc\Documents\Python学习笔记\新新人类模板.xls') 10 # 2、再打开工作表 11 table1 = data1.sheet_by_name(u'Sheet1') 12 # 3、row_values 获取这个工作表第0行的整行数据,返回数组类型 13 name1 = table1.row_values(0) 14 # 4、获取这个工作表的列数,返回int 15 nrows1 = table1.ncols 16 # 5、下面循环把第0行所有列的数据的依次写入之前创建的工作表test_sheet 17 for j in range(nrows1): 18 # 6、写入数据,write(row,col,data)为工作表对象,表示在第row+1行第col列添加data数据 19 test_sheet.write(0, j, name1[j]) 20 21 # 四:保存文件名,下面是从别的文件获取文件名 22 data = xlrd.open_workbook('C:\Users\ccccc\Documents\Python学习笔记\新新人类编号.xls') 23 table = data.sheet_by_name(u'Sheet1') 24 name = table.col_values(0) 25 bank = table.col_values(1) 26 nrows = table.nrows 27 for i in range(nrows): 28 bank1 = bank[i] 29 # 把返回的数组里的每个先赋值变量bank1,再截取字符串的前4个,这里可以先加个判断是否有4位,否则不足4位会报错 30 bank2 = bank1[0:4] 31 # 四、save保存文件 32 testbook.save('C:\Users\ccccc\Documents\Python学习笔记\'+'新新-'+name[i]+'-'+bank2+'-.xls')
纠正在最后
标题里说了从另一个Excel获取,代码是从两个Excel分别获取的,代码可以优化为1个Excel,数据放两个工作表。