#!/usr/bin/python
# -*-coding: utf-8 -*-
import xlrd
import xlwt
import os
import numpy as np
filePath = u'E:\\one_year\\合并数据\\冷塔'
fileDir = os.listdir(filePath)
#files = []
#fileSavePath = u'E:\\one_year\\合并数据\\冷冻水泵\\5'
biaotou1 = ['湿球温度(℃)A', '1#冷却塔冷却水进水温度(℃)', '1#冷却塔1#风机变频反馈', '1#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','1#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-1']
biaotou2 = ['湿球温度(℃)A', '2#冷却塔冷却水进水温度(℃)', '2#冷却塔1#风机变频反馈', '2#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','2#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-2']
biaotou3 = ['湿球温度(℃)A', '3#冷却塔冷却水进水温度(℃)', '3#冷却塔1#风机变频反馈', '3#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','3#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-3']
biaotou4 = ['湿球温度(℃)A', '4#冷却塔冷却水进水温度(℃)', '4#冷却塔1#风机变频反馈', '4#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','4#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-4']
biaotou = []
biaotou.append(biaotou1)
biaotou.append(biaotou2)
biaotou.append(biaotou3)
biaotou.append(biaotou4)
for filepath in fileDir: ###解决中文乱码问题
objectFile = filePath + r'\\' + filepath
list1 = []
list2 = []
list3 = []
list4 = []
for fileName in os.listdir(objectFile):
excelfile = objectFile + r'\\' + fileName
print(fileName)
if int(fileName[6:7]) == 1:
list1.append(excelfile)
if int(fileName[6:7]) == 2:
list2.append(excelfile)
if int(fileName[6:7]) == 3:
list3.append(excelfile)
if int(fileName[6:7]) == 4:
list4.append(excelfile)
listAll = []
listAll.append(list1)
listAll.append(list2)
listAll.append(list3)
listAll.append(list4)
tower_num = 0
for lis in listAll:
tower_num = 1 + tower_num
matrix = [None] * len(lis)
for i in range(len(lis)):
fname = lis[i]
print(fname)
excelFile = xlrd.open_workbook(fname)
try:
data = excelFile.sheet_by_name("MySheet")
except:
print("在文件%s中没有找到sheet1,读取文件数据失败,要不你换换表格的名字?" % fname)
nrows = data.nrows
ncols = data.ncols
matrix[i] = [0] * (nrows - 1)
for m in range(nrows - 1):
matrix[i][m] = ["0"] * ncols
flag = 0
for j in range(1, nrows):
for k in range(0, ncols):
# print(str(data.cell(j, k).value))
if (str(data.cell(j, k).value) == '\\N')or(str(data.cell(j, k).value) == (str(0.0))):
flag = flag + 1
break
if (str(data.cell(j, ncols - 1).value) == '\\N') or (float(data.cell(j, ncols - 1).value) < 2.0):
flag = flag + 1
break
if (str(data.cell(j, 2).value) == '\\N' or str(data.cell(j, 3).value) == '\\N'):
flag = flag + 1
break
if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) > 50.0)and (float(data.cell(j, ncols - 1).value) < 12.0):
flag = flag + 1
break
if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) < 10.0) and (float(data.cell(j, ncols - 1).value) > 3.0):
flag = flag + 1
break
if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) < 50.0) and (float(data.cell(j, ncols - 1).value) < 5.0):
flag = flag + 1
break
matrix[i][j - 1 - flag][k] = data.cell(j, k).value
matrix[i] = np.delete(matrix[i], np.s_[(nrows - flag - 1):nrows], axis=0)
#print(matrix)
fileExcel = xlwt.Workbook()
sheet = fileExcel.add_sheet("MySheet")
# 下面是把表头写上
for i in range(0, len(biaotou[tower_num - 1])):
sheet.write(0, i, biaotou[tower_num - 1][i])
# 求和前面的文件一共写了多少行
zh = 1
for i in range(len(lis)):
for j in range(len(matrix[i])):
for k in range(len(matrix[i][j])):
sheet.write(zh, k, matrix[i][j][k])
zh = zh + 1
print("我已经将%d个文件合并成1个文件")
fileSavePath = os.path.dirname(objectFile) + r'\\' +'0_'+ filepath + '月'
print(fileSavePath + r'\\'+ str(tower_num) + "#lengta.xlsx")
if not os.path.exists(fileSavePath): ###创建月份文件夹
os.makedirs(fileSavePath)
fileExcel.save(fileSavePath + r'\\'+ str(tower_num) + "#lengta.xlsx")