今天花了一小时给别人写的一个小程序
结果真的让人激动哇
import xlwt
import pandas as pd
from xlutils.copy import copy
import xlrd
# 创建一个汇总表并写入索引
def new_workbook():
f = xlwt.Workbook() # 创建工作簿
# 新建一张表
sheet = f.add_sheet('sheet1', cell_overwrite_ok=True)
clu = ["站名", "小区名", "标识", "CI"]
for i in range(len(clu)):
sheet.write(0, i, clu[i])
f.save("D:/数据/汇总后数据.xls")
new_workbook()
# 读取三张表的数据
data1 = pd.read_excel("D:/数据/数据1-20191124.xlsx")
data2_1 = pd.read_excel("D:/数据/数据2-20191124.xlsx", sheet_name='FDD')
data2_2 = pd.read_excel("D:/数据/数据2-20191124.xlsx", sheet_name='GSM')
data3 = pd.read_excel("D:/数据/数据3-20191124.xls")
# 计算每张表的行数
len_data1 = data1.shape[0]
len_data2_1 = data2_1.shape[0]
len_data2_2 = data2_2.shape[0]
len_data3 = data3.shape[0]
# 在写入数据之前,每次都要读取汇总表的行数
# 写入第一张表的数据
def write_first():
data_sum = pd.read_excel("D:/数据/汇总后数据.xls")
len_sum = data_sum.shape[0]
w = xlrd.open_workbook("D:/数据/汇总后数据.xls") # 打开已经存在的表
new_work = copy(w) # 复制
sheet = new_work.get_sheet(0) # 打开第一个表
# 往里面写数据
for i in range(len_data1):
sheet.write(len_sum + 1 + i, 0, data1["实际站名"].values[i])
sheet.write(len_sum + 1 + i, 1, data1["实际小区名"].values[i])
sheet.write(len_sum + 1 + i, 2, str(data1["基站标识"].values[i]))
sheet.write(len_sum + 1 + i, 3, str(data1["小区码CI"].values[i]))
new_work.save("D:/数据/汇总后数据.xls")
write_first()
# 写入第二张表的数据
def write_second():
data_sum = pd.read_excel("D:/数据/汇总后数据.xls")
len_sum = data_sum.shape[0]
w = xlrd.open_workbook("D:/数据/汇总后数据.xls") # 打开已经存在的表
new_work = copy(w) # 复制
sheet1 = new_work.get_sheet(0) # 打开第一个表
# 往里面写数据
for i in range(len_data2_1):
sheet1.write(len_sum + 1 + i, 0, data2_1["ENODEBName"].values[i])
sheet1.write(len_sum + 1 + i, 1, data2_1["CELLNAME"].values[i])
sheet1.write(len_sum + 1 + i, 2, str(data2_1["ENODEBID"].values[i]))
sheet1.write(len_sum + 1 + i, 3, str(data2_1["ECI"].values[i]))
new_work.save("D:/数据/汇总后数据.xls")
for i in range(len_data2_2):
sheet1.write(len_sum + 1 + i + data2_1.shape[0], 0, data2_2["网元名称"].values[i])
sheet1.write(len_sum + 1 + i + data2_1.shape[0], 1, data2_2["小区网元名称"].values[i])
sheet1.write(len_sum + 1 + i + data2_1.shape[0], 2, str(data2_2["LAC"].values[i]))
sheet1.write(len_sum + 1 + i + data2_1.shape[0], 3, str(data2_2["CI"].values[i]))
new_work.save("D:/数据/汇总后数据.xls")
write_second()
# 写入第三张表的数据
def write_third():
data_sum = pd.read_excel("D:/数据/汇总后数据.xls")
len_sum = data_sum.shape[0]
w = xlrd.open_workbook("D:/数据/汇总后数据.xls") # 打开已经存在的表
new_work = copy(w) # 复制
sheet = new_work.get_sheet(0) # 打开第一个表
# 往里面写数据
for i in range(len_data3):
sheet.write(len_sum + 1 + i, 0, data3["BTSNAME"].values[i])
sheet.write(len_sum + 1 + i, 1, data3["Cell Name"].values[i])
sheet.write(len_sum + 1 + i, 2, str(data3["LAC"].values[i]))
sheet.write(len_sum + 1 + i, 3, str(data3["CI"].values[i]))
new_work.save("D:/数据/汇总后数据.xls")
write_third()
# 创建一个索引表并写入索引
def workbook():
f = xlwt.Workbook() # 创建工作簿
# 新建一张表
sheet = f.add_sheet('sheet1', cell_overwrite_ok=True)
clu = ["站名", "小区名", "标识", "CI"]
for i in range(len(clu)):
sheet.write(0, i, clu[i])
f.save("D:/数据/索引后数据.xls")
workbook()
def index_work():
# 读取索引表数据
index = pd.read_excel("D:/数据/索引表.xlsx")
# 读取汇总表数据
data = pd.read_excel("D:/数据/汇总后数据.xls")
w = xlrd.open_workbook("D:/数据/索引后数据.xls") # 打开已经存在的表
new_work = copy(w) # 复制
sheet = new_work.get_sheet(0) # 打开第一个表
# 往里面写数据
k = 0
for j in range(index.shape[0]):
for i in range(data.shape[0]):
if index["站名"].values[j] == data["站名"].values[i]:
k += 1
sheet.write(k, 0, data["站名"].values[i])
sheet.write(k, 1, data["小区名"].values[i])
sheet.write(k, 2, str(data["标识"].values[i]))
sheet.write(k, 3, str(data["CI"].values[i]))
new_work.save("D:/数据/索引后数据.xls")
index_work()