import openpyxl
import pandas as pd
import numpy as np
import openpyxl as pyxl
import xlrd
import xlwt
from xlutils.copy import copy
import os
totalPath = input("请输入总清单Excel:")
file_dir = input("请输入打包清单路径:")
for root, dirs, files in os.walk(file_dir):
print(root) #当前目录路径
print(dirs) #当前路径下所有子目录
print(files) #当前路径下所有非目录子文件
for file in files:
packPath = os.path.join(root, file)
savefile = root + "/" + os.path.splitext(file)[0] + "含图纸编号.xls"
#修改Excel
bk1 = xlrd.open_workbook(packPath)
bk2 = copy(bk1)
xl = pd.ExcelFile(packPath)
sheetName = xl.sheet_names
print(sheetName)
for i in range(len(sheetName)):
packDFRaw = pd.read_excel(packPath,sheetname=i,header=1)
#删除最后一行
rowEnd = len(packDFRaw)
packDF = packDFRaw.drop(index = [rowEnd-1])
#获得模板编号
packBoardId = packDF["模板编号"]
#从总清单中找到模板编号对应的图纸编号
totalDFRow = pd.read_excel(totalPath,header=1)
# drop_duplicate方法是对DataFrame格式的数据,去除特定列下面的重复行
# 返回DataFrame格式的数据
totalDF = totalDFRow.drop_duplicates("模板编号", 'first', inplace=False)
totalSeries = pd.Series(totalDF["图纸编号"].values, index = totalDF["模板编号"])
#imgeIdList图纸编号
imageIdList = []
for boardId in packBoardId:
print(boardId)
temp = totalSeries[boardId]
print(temp)
imageIdList.append(temp)
print(type(imageIdList))
ws = bk2.get_sheet(i)
ws.write(1,3,"图纸编号")
for j in range(0, len(imageIdList) ):
print(imageIdList[j])
ws.write(2+j,3,imageIdList[j])
bk2.save(savefile)