power_map ="./Power_map.xlsx"
xlspath ="./die_data.xlsx"
file_out_path ="./dest.xlsx"
die_data = pd.read_excel(xlspath,usecols=['Pin number','X','Y','Net name'])
sheet = pd.read_excel(power_map,engine = 'openpyxl',usecols=['Relation','X Location','Y Location','X size','Y size'])
nrow = die_data.shape[0]
ncol = die_data.shape[1]
prow = sheet.shape[0]
pcol = sheet.shape[1]
x_offset = -4775.400
y_offset = -5191.200
xls = xlwt.Workbook()
write_sheet = xls.add_sheet('Sheet1',cell_overwrite_ok=True)
dest_keys = ['No.','Relation','pos-Net name','pos-number','neg-Net name','neg-number']
style = xlwt.XFStyle()
# 写第一行
for dest_key in dest_keys:
write_sheet.write(0, dest_keys.index(dest_key), dest_key)
for row in range(1,prow):
write_sheet.write(row,0,row)
write_sheet.write(row,1,sheet.values[row,0])
cell0 =[]
cell1 =[]
for i in range(0,nrow):
x = float(die_data.values[i,1]) - x_offset
y = float(die_data.values[i,2]) - y_offset
x_min = sheet.values[row,1]
x_max = x_min+sheet.values[row,3]
y_min = sheet.values[row,2]
y_max = y_min+sheet.values[row,4]
if x_min <= x <= x_max and y_min <= y <= y_max and die_data.values[i,3] == 'VSS':
write_sheet.write(row,4,'VSS')
cell0.append(die_data.values[i,0])
# write_sheet.write(row-1,5,die_data.values[i,0])
elif x_min <= x <= x_max and y_min <= y <= y_max:
write_sheet.write(row,2,die_data.values[i,3])
cell1.append(die_data.values[i,0])
# write_sheet.write(row-1,3,die_data.values[i,0])
# if x_min <= x <= x_max and y_min <= y <= y_max:
# if die_data.values[i,3] == 'VSS':
# write_sheet.write(row,4,'VSS')
# cell0.append(die_data.values[i,0])
# # write_sheet.write(row-1,5,die_data.values[i,0])
# else:
# write_sheet.write(row,2,die_data.values[i,3])
# cell1.append(die_data.values[i,0])
# # write_sheet.write(row-1,3,die_data.values[i,0])
write_sheet.write(row, 5, str(cell0))
write_sheet.write(row, 3, str(cell1))
xls.save(file_out_path)