要复制excel表的内容:
分别在第15、16、17、18、19列
第二张的excel表格:
代码部分:
import xlrd
from datetime import datetime
from xlutils.copy import copy
excel_file = '2018材料出库单列表(含项目)研发0902-飞.XLS' #导入excel数据
data=xlrd.open_workbook(excel_file) # ----读取excel----
table = data.sheet_by_name("sheet1") # 通过名称获取sheet
wb=xlrd.open_workbook('PMT1010S-SA-WT领料单.xls',formatting_info=True) #打开另一张excel的表格 模板
new_wb =copy(wb) #将xlrd对象拷贝转化为xlwt对象,要用到xlutils模块
new_sheet = new_wb.get_sheet(0) #读取Excel的第一张工作表
rowx=5 #第二张excel要填入数据的行号
j=1
#将数放到指定的位置
for i in range(table.nrows):
if table.row(i)[23].value=='PMT1004S-SG-ZT': #根据某列的值进行筛选23列号 细分
print(table.row_values(i, start_colx=0, end_colx=None)) #打印你筛选出来的数据
print(table.row_values(i, start_colx=15, end_colx=19)) #开始15列 结束19列
if table.row(i)[5].value==43129.0:#根据某行的一个值进行第二次筛选
#将筛选出来的数据写入第二个excel
new_sheet.write(2, 3, table.cell_value(i, 5))
new_sheet.write(rowx, 0, j) # 行 列 内容#序号
new_sheet.write(rowx, 1, table.cell_value(i,15)) #材料编码
new_sheet.write(rowx, 2, table.cell_value(i,16)) #材料名称
new_sheet.write(rowx, 3, table.cell_value(i,17)) #规格型号
new_sheet.write(rowx, 4, table.cell_value(i,18)) #主计量
new_sheet.write(rowx, 5, table.cell_value(i,19)) #数量
j+=1 #序号+1
rowx+=1 #换到下一行数据
new_wb.save('PMT1010S-SA-WT领料单2.xlsx') #将表格保存为新的表格,也可以覆盖原来的模板