1. #!/usr/bin/env python3.5
    2. # -*- encoding: utf-8 -*-
    3. #2 Import Lib And Defiend Variables
    4. from openpyxl import Workbook,load_workbook
    5. from openpyxl.styles import *
    6. import pymysql
    7. import datetime
    8. import xlwt
    9. import warnings
    10. warnings.filterwarnings('ignore')
    11. #连接DB
    12. db = pymysql.connect( #连接数据库
    13. host = 'localhost',
    14. port = 3306,
    15. user = 'root',
    16. passwd = 'ssm1991512',
    17. db = 'zabbix'
    18. )
    19. today = datetime.date.today() #今日时间
    20. sql = "SELECT space_infor.hname,cpumem_infor.cpu,cpumem_infor.mem,space_infor.space FROM (SELECT cpu_infor.hname AS hname,cpu_infor.cpu_data AS cpu,mem_infor.mem_data AS mem FROM (SELECT h.name as hname,concat(CEILING(avg(t.value_max)*100),'%') as cpu_data FROM hosts h JOIN items i ON h.hostid = i.hostid JOIN trends t ON t.itemid = i.itemid WHERE i.name='Processor load (15 min average per core)' AND from_unixtime(t.clock) >= '{0} 00:00:00' GROUP BY h.name ORDER BY h.name) AS cpu_infor, (SELECT h.name as hname,CONCAT(ROUND(((max(his.value)-min(his.value)+0.5*1024*1024*1024)/(max(his.value)+10*1024*1024*1024))*100),'%') as mem_data FROM hosts h JOIN items i ON h.hostid =i.hostid JOIN history_uint his ON i.itemid = his.itemid WHERE i.name IN ('Available memory','Total memory') AND from_unixtime(his.clock) >= '{0} 00:00:00' GROUP BY h.name) AS mem_infor WHERE cpu_infor.hname = mem_infor.hname) AS cpumem_infor, (SELECT h.name AS hname,MAX(concat(round(100 - his.value),'%')) as space FROM hosts h JOIN items i ON h.hostid = i.hostid JOIN history his ON his.itemid = i.itemid WHERE i.key_ LIKE 'vfs.fs.size[%,pfree]' AND i.key_ NOT LIKE '%FSNAME%' AND from_unixtime(his.clock) >= '{0} 00:00:00' GROUP BY h.name) AS space_infor WHERE cpumem_infor.hname = space_infor.hname AND space_infor.hname not in ('NJ_192.168.188.50-SIP_NAT1_S','NJ_192.168.188.49-SIP_NAT1_M','NJ_192.168.188.51-SIP_NAT2_M','NJ_192.168.188.56-SIP_NAT4_S');".format(today)
    21. #print(sql) #测试sql的时间变量
    22. cursor = db.cursor()
    23. cursor.execute(sql)
    24. data = cursor.fetchall()
    25. print(data)
    26. #print(len(data))
    27. #对其方式
    28. style = xlwt.XFStyle() #初始化样式
    29. align = xlwt.Alignment() #初始化对其方式
    30. align.horz = 0x02 #水平居中
    31. align.vert = 0x01 #垂直居中
    32. style.alignment = align
    33. #####################################################
    34. #设置背景色
    35. style_bg = xlwt.XFStyle()
    36. pattern = xlwt.Pattern()
    37. pattern.pattern = xlwt.Pattern.SOLID_PATTERN
    38. pattern.pattern_fore_colour = 40
    39. xlwt.Style.colour_map['green']
    40. style_bg.pattern = pattern
    41. align = xlwt.Alignment() #初始化对其方式
    42. align.horz = 0x02 #水平居中
    43. align.vert = 0x01 #垂直居中
    44. style_bg.alignment = align
    45. ####################################################
    46. #3 Operate
    47. wb = xlwt.Workbook(encoding = 'utf-8') #创建表单
    48. nj_sheet = wb.add_sheet('南基',cell_overwrite_ok = True) #创建2个sheet页
    49. bj_sheet = wb.add_sheet('北基',cell_overwrite_ok = True)
    50. # nj_sheet.write_merge(开始行,结束行,开始列,结束列,value,style) #合并单元格方式
    51. ## 标题-第0行
    52. nj_sheet.write_merge(0,0,0,20,'中国移动和对讲toB生产环境主机巡查表',style) #未设置style,默认
    53. ## 标题-第1行
    54. for cel1_2 in range(0,20): #为第row1、row2添加背景色
    55. nj_sheet.write(1,cel1_2,'',style_bg)
    56. nj_sheet.write(2,cel1_2,'',style_bg)
    57. nj_sheet.write_merge(1,1,5,7,'检查项',style_bg) #合并并添加背景色
    58. nj_sheet.write_merge(1,1,8,10,'业务针对性并发',style_bg)
    59. nj_sheet.write_merge(1,1,11,12,'业务处理时延',style_bg)
    60. nj_sheet.write_merge(1,1,13,20,'检查是否存在异常',style_bg)
    61. ##标题-第2行
    62. row2 = ['序号','资源池','主机名','带宽分配(mbps)','弹性块存储','CPU占用','内存占用','磁盘占用','单台服务处理并发值','单台可承载的并发容量','是否有告警','数据处理时延','是否有告警','账号是否安全(有无异常登录)','命令执行历史记录查询','有无异常端口','有无异常进程','开机启动项','定时任务','有无异常文件','服务运行情况']
    63. for col in range(0,len(row2)):
    64. nj_sheet.write(2,col,row2[col],style_bg)
    65. col_width = nj_sheet.col(col) #设置列宽
    66. col_width.width = 256 * 20
    67. #print(len(data))
    68. #print(data[1][1])
    69. #a = data[0][0]
    70. #b = a.split('-')[1]
    71. #print(b)
    72. bandwidth1 = ('log_backup_0001','log_backup_0002','db_backup_0003','db_backup_0004','DB_Backup_0001','DB_Backup_0002','DB_Backup_0003','S_DBSync_001','S_DBSync_002','S_DBSync_003','pocMDS17','pocMDS18','pocMDS19','pocMDS20')
    73. bandwidth2 = ('S_EFK_001','S_EFK_002','S_EFK_003')
    74. bandwidth5 = ('DB_Agg_001','Web_Contre_0001','DB_Agg_002','db_middleware_0001','Web_Contre_0003','DB_Partition_Core_0001','Video_Stream_Storage_0019','db_middleware_0002','DB_Agg_003','db_backup_0004','Web_Contre_0002','eboss1','eboss2','Database4','Database3','Database2','Database1','DatabaseMW2','DatabaseMW1','CMPOC2','CMPOC1','OPERATION2','OPERATION1','pocs1')
    75. bandwidth10 = ('DB_ADD_07','DB_ADD_08','DB_ADD_09','N_EFK_003','N_EFK1_0001','N_EFK1_0002','omc_0001','omc_0002','operation_0001','operation_0002','SP_Core_0001','SP_Core_0002','SP_Core_0003','SP_Core_0004')
    76. bandwidth20 = ('DS_XMDS_0002','DS_XMDS_0003','DS_XMDS_0004','DS_XMDS_0005','MQ_0002','MQ_0003','pocDM1','pocDM2','pocDM3','pocDM4','pocDM5','pocDM6','pocDM7','pocDM8','pocDM9','pocDM10','pocIM1','pocIM2','pocIM3','pocIM4','pocIM5','pocIM6','pocIM7','pocIM8','pocLBS1','pocLBS2','pocLBS3','pocLBS4','pocLBS5','pocLBS6','PocWeb1','PocWeb2','SP_Core_0005','SP_Core_0006','SP_Core_0007','SP_Core_0008','SP_Core_0009','SP_Core_0010','SP_Core_0011','SP_Core_0012','SP_Core_0013','SP_Core_0014','SP_Core_0015','SP_Core_0016','SP_Filemsg_0001','SP_Filemsg_0002','SP_Filemsg_0003','SP_Filemsg_0004','SP_Filemsg_0005','SP_Filemsg_0006','SP_Filemsg_0007','SP_Filemsg_0008','Video_Stream_Storage_0001','Video_Stream_Storage_0002','Video_Stream_Storage_0003')
    77. bandwidth30 = ('DB_Partition_Core_0002','DB_Partition_Core_0003','DB_Partition_History_0001','DB_Partition_History_0002','DB_Partition_History_0003','ds_report_0001','ds_report_0002','DS_REPORT_0003','DS_REPORT_0004','DS_REPORT_0005','DS_REPORT_0006','DS_XMDS_0001','PocSP1','PocSP10','PocSP11','PocSP12','PocSP13','PocSP14','PocSP15','PocSP16','PocSP2','PocSP3','PocSP4','PocSP5','PocSP6','PocSP7','PocSP8','PocSP9','SP_Core_0012')
    78. bandwidth40 = ('HaProxy_SIP_01','HaProxy_SIP_02','HaProxyDM2','Proxy_SIP_01','Web_Contre_0004')
    79. bandwidth50 = ('DS_XMDS_0006','DS_XMDS_0007','DS_XMDS_0008','globe01','globe02','globe03','HaProxyDM1','HaProxyDm4001_01','HaProxyDm4001_02','HaProxyDmOMA19998_01','HaProxyDmOMA19998_02','HaProxyLBS_01','HaProxyLBS_02','HaProxyVideo2','HaProxyWeb1','HaProxyWeb2','HaProxyWebDM1880_01','HaProxyWebDM1880_02','mds_0001','mds_0002','mds_0003','mds_0004','mds_0012','mds_0013','mds_0014','mds_0015','mds_0016','MDSR_0001','MDSR_0002','MDSR_0003','MDSR_0004','mdsr_0005','mdsr_0007','mdsr_0008','MQ_0001','pocMDS1','pocMDS12','pocMDS13','pocMDS14','pocMDS15','pocMDS16','pocMDS2','pocMDS3','pocMDS4','pocMDS5','pocMDS6','pocMDS7','pocMDS8','pocMDSR1','pocMDSR2','pocMDSR3','pocMDSR4','pocMDSR5','pocMDSR6','pocMDSR7','pocMDSR8','PocWeb3','PocWeb4')
    80. bandwidth95 = ('mds_0005','mds_0007','mds_0008','mds_0009','mds_0010','mds_0011')
    81. bandwidth100 = ('HaProxy_Video_01','pocMDS10','pocMDS11','pocMDS9','PocVideo1','PocVideo2','PocVideo3','PocVideo4','PocVideo5','PocVideo6','PocVideo7','PocVideo8','Video_Stream_Storage_0004','Video_Stream_Storage_0005','Video_Stream_Storage_0006','Video_Stream_Storage_0007','Video_Stream_Storage_0008','Video_Stream_Storage_0009','Video_Stream_Storage_0010','Video_Stream_Storage_0011','Video_Stream_Storage_0012','Video_Stream_Storage_0013','Video_Stream_Storage_0014','Video_Stream_Storage_0017','Video_Stream_Storage_0018')
    82. bandwidth126 = ('Ha_Proxy_Video_01','mds_0006','mdsr_0006','Ha_Proxy_Video_02')
    83. bandwidth500 = ('N_ReduceProxy_01','N_ReduceProxy_02','S_ReduceProxy_01','S_ReduceProxy_02')
    84. disk_size_500g = ('N_ReduceProxy_01','N_ReduceProxy_02','Ha_Proxy_Video_01','mds_0003','MDSR_0001','SP_Core_0016','Video_Stream_Storage_0010','SP_Core_0004','mdsr_0008','SP_Core_0003','SP_Core_0010','mds_0004','MDSR_0003','SP_Filemsg_0001','N_EFK1_0001','DS_REPORT_0005','DB_Partition_History_0002','mds_0001','DS_REPORT_0006','Web_Contre_0001','db_middleware_0001','Video_Stream_Storage_0013','SP_Core_0011','mds_0005','Video_Stream_Storage_0009','Web_Contre_0003','N_EFK1_0002','Video_Stream_Storage_0012','SP_Core_0001','DS_REPORT_0004','mds_0013','SP_Core_0007','SP_Core_0009','DB_Partition_History_0001','SP_Filemsg_0003','Ha_Proxy_Video_02','omc_0002','SP_Filemsg_0005','Video_Stream_Storage_0018','DB_Partition_Core_0001','SP_Core_0002','Video_Stream_Storage_0006','mds_0012','Video_Stream_Storage_0007','Video_Stream_Storage_0017','mds_0006','DS_XMDS_0002','mds_0002','Video_Stream_Storage_0008','SP_Core_0013','DB_Partition_Core_0002','Video_Stream_Storage_0004','DB_Partition_Core_0003','Video_Stream_Storage_0014','operation_0002','mds_0010','DS_XMDS_0008','SP_Core_0006','DS_XMDS_0007','SP_Filemsg_0008','mdsr_0007','SP_Filemsg_0002','Video_Stream_Storage_0019','ds_report_0001','mdsr_0005','mds_0008','Video_Stream_Storage_0003','SP_Core_0005','Video_Stream_Storage_0005','mdsr_0006','N_EFK_003','mds_0014','MDSR_0002','Web_Contre_0004','SP_Core_0014','DS_XMDS_0003','Video_Stream_Storage_0002','mds_0011','Video_Stream_Storage_0011','DS_XMDS_0006','DS_XMDS_0004','SP_Core_0012','DS_XMDS_0005','mds_0016','db_middleware_0002','ds_report_0002','SP_Core_0015','SP_Filemsg_0007','Video_Stream_Storage_0001','mds_0015','mds_0009','SP_Filemsg_0004','SP_Filemsg_0006','SP_Core_0008','Web_Contre_0002','mds_0007','DB_Partition_History_0003','DS_REPORT_0003','MQ_0002','DS_XMDS_0001','MDSR_0004','operation_0001','MQ_0001','MQ_0003','omc_0001','eboss1','eboss2','HaProxyVideo2','HaProxy_SIP_01','Proxy_SIP_01','HaProxyDm4001_01','HaProxyDm4001_02','HaProxyWebDM1880_01','HaProxyWeb1','HaProxyWebDM1880_02','HaProxyDmOMA19998_01','HaProxyDmOMA19998_02','HaProxyLBS_01','HaProxyLBS_02','HaProxy_SIP_02','HaProxyWeb2','HaProxyDM1','HaProxyDM2','HaProxy_Video_01','S_DBSync_001','MonitorTransfer','OperationSupport','globe03','globe02','globe01','S_ReduceProxy_01','S_ReduceProxy_02','pocDM7','pocDM8','PocSP9','PocSP10','PocSP11','PocSP12','PocSP13','PocSP14','PocSP15','PocSP16','pocIM5','pocIM6','pocMDS12','pocMDS13','pocMDS14','pocMDS15','pocMDS16','pocMDS17','pocDM9','pocIM7','pocIM8','pocMDS18','pocMDS19','pocMDS20','pocMDSR5','pocMDSR6','pocMDSR7','pocMDSR8','pocDM10','S_EFK_001','S_EFK_002','S_EFK_003','pocIM4','pocIM3','pocIM2','pocIM1','pocMDS8','DatabaseMW2','pocMDS5','pocMDS6','DatabaseMW1','PocSP8','PocSP6','PocSP7','pocMDS7','PocSP5','PocSP4','PocSP3','PocSP2','PocSP1','pocDM6','pocMDS4','pocMDS3','pocDM4','pocMDS2','pocMDS1','pocDM5','pocDM3','pocDM2','pocDM1','PocWeb4','PocWeb3','PocWeb2','PocWeb1','pocLBS6','pocMDSR3','pocMDSR2','pocMDSR1','pocMDSR4','pocLBS5','pocLBS4','pocLBS3','pocLBS2','pocLBS1','pocMDS11','pocMDS10','pocMDS9','PocVideo8','PocVideo7','OPERATION2','OPERATION1','PocVideo6','PocVideo5','PocVideo4','PocVideo3','PocVideo1','PocVideo2','S_DBSync_002','S_DBSync_003','pocs1')
    85. ############################################################################################
    86. disk_size_1t = ('CMPOC1','CMPOC2')
    87. disk_size_4t = ('Database1','Database2')
    88. disk_size_8t = ('db_backup_0003','log_backup_0002','DB_Backup_0003','Database4','Database3')
    89. disk_size_14t = ('DB_Backup_0002')
    90. disk_size_20t = ('DB_Agg_001','DB_Agg_002','DB_Agg_003','DB_ADD_07','DB_ADD_08','DB_ADD_09')
    91. disk_size_24t = ('DB_Backup_0001')
    92. disk_size_26t = ('log_backup_0001')
    93. disk_size_28t = ('db_backup_0004')
    94. ##############################################################################################
    95. current_1k5 = ('Video_Stream_Storage_0010','mdsr_0008','Video_Stream_Storage_0013','mds_0005','Video_Stream_Storage_0009','Video_Stream_Storage_0012','mds_0013','Video_Stream_Storage_0018','Video_Stream_Storage_0006','mds_0012','Video_Stream_Storage_0007','Video_Stream_Storage_0017','mds_0006','Video_Stream_Storage_0008','Video_Stream_Storage_0004','Video_Stream_Storage_0014','mds_0010','log_backup_0002','mdsr_0007','mdsr_0005','mds_0008','Video_Stream_Storage_0005','mdsr_0006','mds_0014','log_backup_0001','mds_0011','Video_Stream_Storage_0011','mds_0016','mds_0015','mds_0009','mds_0007','S_DBSync_001','pocMDS17','pocMDS18','pocMDS19','pocMDS20','pocMDSR5','pocMDSR6','pocMDSR7','pocMDSR8','pocMDS8','pocMDS5','pocMDS6','pocMDS7','pocMDSR3','pocMDSR2','pocMDSR1','pocMDSR4','pocMDS9','S_DBSync_002','S_DBSync_003','pocs1')
    96. current_2k = ('DB_Agg_001','DB_Agg_002','db_middleware_0001','db_backup_0003','DB_Partition_Core_0001','db_middleware_0002','DB_Agg_003','db_backup_0004','DB_Backup_0001','DB_Backup_0002','DB_Backup_0003','PocSP9','Database4','Database3','Database2','Database1','DatabaseMW1','PocSP8','PocSP6','PocSP7','CMPOC2','CMPOC1','PocVideo1')
    97. current_1w = ('N_ReduceProxy_01','N_ReduceProxy_02','SP_Core_0016','SP_Core_0004','SP_Core_0003','SP_Core_0010','SP_Filemsg_0001','N_EFK1_0001','Web_Contre_0001','SP_Core_0011','Web_Contre_0003','N_EFK1_0002','SP_Core_0001','SP_Core_0007','SP_Core_0009','SP_Filemsg_0003','omc_0002','SP_Filemsg_0005','SP_Core_0002','DS_XMDS_0002','SP_Core_0013','operation_0002','SP_Core_0006','SP_Filemsg_0008','SP_Filemsg_0002','Video_Stream_Storage_0019','Video_Stream_Storage_0003','SP_Core_0005','N_EFK_003','SP_Core_0014','DS_XMDS_0003','Video_Stream_Storage_0002','DS_XMDS_0004','SP_Core_0012','DS_XMDS_0005','SP_Core_0015','SP_Filemsg_0007','Video_Stream_Storage_0001','SP_Filemsg_0004','SP_Filemsg_0006','SP_Core_0008','Web_Contre_0002','MQ_0002','operation_0001','MQ_0003','omc_0001','HaProxyDm4001_01','HaProxyDm4001_02','HaProxyWebDM1880_01','HaProxyDM1','HaProxyDM2','globe03','S_ReduceProxy_01','S_ReduceProxy_02','pocDM7','pocDM8','PocSP10','PocSP11','PocSP12','PocSP15','PocSP16','pocIM5','pocIM6','pocMDS12','pocMDS13','pocMDS14','pocMDS15','pocMDS16','pocDM9','pocIM7','pocIM8','S_EFK_001','S_EFK_002','S_EFK_003','pocIM4','pocIM3','pocIM2','pocIM1','PocSP3','PocSP2','PocSP1','pocMDS4','pocMDS3','pocMDS2','pocMDS1','pocDM3','PocWeb4','PocWeb3','PocWeb2','PocWeb1','pocLBS6','pocLBS5','pocLBS4','pocLBS3','pocLBS2','pocLBS1','pocMDS11','pocMDS10','PocVideo8','PocVideo4','PocVideo3','PocVideo2')
    98. current_2w = ('Web_Contre_0004','PocSP13','PocSP14','PocSP5','PocSP4')
    99. current_2w5 = ('Ha_Proxy_Video_01','mds_0003','MDSR_0001','mds_0004','MDSR_0003','mds_0001','Ha_Proxy_Video_02','mds_0002','DS_XMDS_0008','DS_XMDS_0007','MDSR_0002','DS_XMDS_0006','MDSR_0004','MQ_0001','HaProxyVideo2','HaProxy_SIP_01','Proxy_SIP_01','HaProxyWeb1','HaProxyWebDM1880_02','HaProxyDmOMA19998_01','HaProxyDmOMA19998_02','HaProxyLBS_01','HaProxyLBS_02','HaProxy_SIP_02','HaProxyWeb2','HaProxy_Video_01','MonitorTransfer','OperationSupport','pocDM10','pocDM6','pocDM4','pocDM5','pocDM2','pocDM1','OPERATION2','OPERATION1')
    100. current_3w = ('DS_REPORT_0005','DB_Partition_History_0002','DS_REPORT_0006','DS_REPORT_0004','DB_Partition_History_0001','DB_Partition_Core_0002','DB_Partition_Core_0003','ds_report_0001','ds_report_0002','DB_Partition_History_0003','DS_REPORT_0003','DS_XMDS_0001','eboss1','eboss2','globe02','globe01','DB_ADD_07','DB_ADD_08','DB_ADD_09','DatabaseMW2','PocVideo7','PocVideo6','PocVideo5')
    101. for d_row in range(0,len(data)):
    102. Hname = data[d_row][0] #处理主机名
    103. Name = Hname.split('-')[1]
    104. area = Hname.split('-')[0].split('_')[0]
    105. nj_sheet.write(d_row + 3,0,d_row + 1,style) #第0列:序号
    106. if area == 'NJ': #第1列:资源池
    107. nj_sheet.write(d_row + 3,1,'南基',style)
    108. wb.save('a.xls')
    109. else:
    110. nj_sheet.write(d_row + 3,1,'北基',style)
    111. wb.save('a.xls')
    112. for d_col in range(2,10):
    113. if d_col == 2: #第2列:主机名
    114. nj_sheet.write(d_row + 3,d_col,Name,style)
    115. wb.save('a.xls')
    116. elif d_col == 3: #第3列:带宽
    117. if Name in bandwidth1:
    118. nj_sheet.write(d_row + 3,d_col,1,style)
    119. wb.save('a.xls')
    120. elif Name in bandwidth2:
    121. nj_sheet.write(d_row + 3,d_col,2,style)
    122. wb.save('a.xls')
    123. elif Name in bandwidth5:
    124. nj_sheet.write(d_row + 3,d_col,5,style)
    125. wb.save('a.xls')
    126. elif Name in bandwidth10:
    127. nj_sheet.write(d_row + 3,d_col,10,style)
    128. wb.save('a.xls')
    129. elif Name in bandwidth20:
    130. nj_sheet.write(d_row + 3,d_col,20,style)
    131. wb.save('a.xls')
    132. elif Name in bandwidth30:
    133. nj_sheet.write(d_row + 3,d_col,30,style)
    134. wb.save('a.xls')
    135. elif Name in bandwidth40:
    136. nj_sheet.write(d_row + 3,d_col,40,style)
    137. wb.save('a.xls')
    138. elif Name in bandwidth50:
    139. nj_sheet.write(d_row + 3,d_col,50,style)
    140. wb.save('a.xls')
    141. elif Name in bandwidth95:
    142. nj_sheet.write(d_row + 3,d_col,95,style)
    143. wb.save('a.xls')
    144. elif Name in bandwidth100:
    145. nj_sheet.write(d_row + 3,d_col,100,style)
    146. wb.save('a.xls')
    147. elif Name in bandwidth126:
    148. nj_sheet.write(d_row + 3,d_col,126,style)
    149. wb.save('a.xls')
    150. elif Name in bandwidth500:
    151. nj_sheet.write(d_row + 3,d_col,500,style)
    152. wb.save('a.xls')
    153. else:
    154. nj_sheet.write(d_row + 3,d_col,'-',style)
    155. wb.save('a.xls')
    156. elif d_col == 4:
    157. if Name in disk_size_500g:
    158. nj_sheet.write(d_row + 3,d_col,500,style)
    159. wb.save('a.xls')
    160. elif Name in disk_size_1t:
    161. nj_sheet.write(d_row + 3,d_col,'1T',style)
    162. wb.save('a.xls')
    163. elif Name in disk_size_4t:
    164. nj_sheet.write(d_row + 3,d_col,'4T',style)
    165. wb.save('a.xls')
    166. elif Name in disk_size_8t:
    167. nj_sheet.write(d_row + 3,d_col,'8T',style)
    168. wb.save('a.xls')
    169. elif Name in disk_size_14t:
    170. nj_sheet.write(d_row + 3,d_col,'14T',style)
    171. wb.save('a.xls')
    172. elif Name in disk_size_20t:
    173. nj_sheet.write(d_row + 3,d_col,'20T',style)
    174. wb.save('a.xls')
    175. elif Name in disk_size_24t:
    176. nj_sheet.write(d_row + 3,d_col,'24T',style)
    177. wb.save('a.xls')
    178. elif Name in disk_size_26t:
    179. nj_sheet.write(d_row + 3,d_col,'26T',style)
    180. wb.save('a.xls')
    181. elif Name in disk_size_28t:
    182. nj_sheet.write(d_row + 3,d_col,'28T',style)
    183. wb.save('a.xls')
    184. elif d_col == 5: #第3列:带宽
    185. nj_sheet.write(d_row + 3,d_col,data[d_row][1],style)
    186. wb.save('a.xls')
    187. elif d_col == 6: #第3列:带宽
    188. nj_sheet.write(d_row + 3,d_col,data[d_row][2],style)
    189. wb.save('a.xls')
    190. elif d_col == 7: #第3列:带宽
    191. nj_sheet.write(d_row + 3,d_col,data[d_row][3],style)
    192. wb.save('a.xls')
    193. elif d_col == 9:
    194. if Name in current_1k5: #第3列:带宽
    195. nj_sheet.write(d_row + 3,d_col,'1千5',style)
    196. wb.save('a.xls')
    197. elif Name in current_2k: #第3列:带宽
    198. nj_sheet.write(d_row + 3,d_col,'2千',style)
    199. wb.save('a.xls')
    200. elif Name in current_1w: #第3列:带宽
    201. nj_sheet.write(d_row + 3,d_col,'1万',style)
    202. wb.save('a.xls')
    203. elif Name in current_2w: #第3列:带宽
    204. nj_sheet.write(d_row + 3,d_col,'2万',style)
    205. wb.save('a.xls')
    206. if Name in current_2w5: #第3列:带宽
    207. nj_sheet.write(d_row + 3,d_col,'2万5',style)
    208. wb.save('a.xls')
    209. if Name in current_3w: #第3列:带宽
    210. nj_sheet.write(d_row + 3,d_col,'3万',style)
    211. wb.save('a.xls')
    212. for nomal_col in range(10,21): #处理9-20列,后面内容为"无“
    213. if nomal_col == 11:
    214. nj_sheet.write(d_row + 3,nomal_col,'',style)
    215. else:
    216. nj_sheet.write(d_row + 3, nomal_col,'无',style)