1 #!/usr/bin/env python
 2 #coding:utf-8
 3 import xlrd,os,datetime
 4 
 5 data=xlrd.open_workbook(u"\\\\10.25.1.9\\Dpt_IT\\基础架构部\\服务器_系统\\3.配置信息\\IDC设备配置信息列表.xlsx") #打开excel文件,Windows下
 6 table=data.sheet_by_index(0) #通过索引选择第一个sheet
 7 nrows=table.nrows #行数
 8 ncols=table.ncols #列数
 9 
10 item=["Item","HostName","IP","外部IP","域名","环境","描述","类型","基础运维负责人","应用管理员","位置","设备类型","硬件厂商","型号","SN","CPU","DISK","MEM","OS","APP","开放端口","备注","日期"]
11 key=[chr(i) for i in range(65,88)] #生产列名A,B,C,D,E...W
12 choice=dict(zip(key,item))
13 ncols_dir=dict(zip(key,range(len(choice))))
14 data_list=[]
15 for i in range(5,nrows):
16     data_list.append(table.row_values(i)) #生成每行数据组成的列表
17 
18 def show(chosen):
19     chosen=chosen.split(',')
20     chosen=[i.upper() for i in chosen]
21     print "*"*len(chosen)*50
22     for i in range(4,nrows):
23         for j in chosen:
24             ctype=table.cell(i,ncols_dir[j]).ctype
25             if ctype == 3:
26                 date_value=xlrd.xldate_as_tuple(table.cell(i,ncols_dir[j]).value,data.datemode)
27                 date_value=datetime.date(*date_value[:3]).strftime("%Y/%m/%d")
28                 print "%-50s" % date_value,
29             elif ctype == 0:
30                 print "%-50s" % "NULL",
31             else:
32                 print "%-50s" % table.cell(i,ncols_dir[j]).value, #打印每行指定列的元素
33         print
34 
35 while True:
36     print '''
37     ******************************************
38                     1.query
39                     2.see all
40                     3.exit
41     '''
42     print
43     chosen_num=raw_input("Pls enter ur choice:")
44     #类型: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
45     if chosen_num == '1':
46         for i,j in sorted(choice.items()):
47             print i+"--->"+j
48         chosen=raw_input("Pls enter ur choice(以,分隔,不区分大小写):")
49         show(chosen)
50     elif chosen_num == '2':
51         chosen=','.join(key)
52         show(chosen)
53     elif chosen_num == '3':
54         exit(0)
55     elif chosen_num == '':
56         pass
57     else:
58         pass