|
发表于
2019-11-13 10:04:40
|
显示全部楼层
- #!usr/bin/env python2
- #-*- coding: utf-8 -*-
- from openpyxl import load_workbook
- from openpyxl import Workbook
- def sheetDes(wb):
- '''
- describe each sheet of excel
- sheetD={'sheetname':(maxrow,maxcolumn)}
- '''
- sheets=wb.get_sheet_names()
- sheetD={}
- for each in sheets:
- sheetD[each]=(wb.get_sheet_by_name(each).max_row,wb.get_sheet_by_name(each).max_column)
- return sheetD
- def getSheetTitle(sn):
- '''
- get title of the sheetname you choose
- '''
- bs=wb.get_sheet_by_name(sn)
- for col in range(1, sheetD[sn][1]+1):
- val=bs.cell(1,col).value
- print col,val
- return bs
- def getContext(cols,outfile):
- '''
- output columns to text
- '''
- with open(outfile,'w') as outf:
- for r in range(1, sheetD[sn][0]+1):
- line=''
- for c in cols.split(','):
- line+=bs.cell(row=r, column=int(c)).value+'\t'
- outf.write(line.strip()+'\n')
- if __name__=='__main__':
- wb = load_workbook('./AML_MDS_in_OMIM_and_HGMD.xlsx')
- sheetD=sheetDes(wb)
- for k,v in sheetD.items():
- print "sheet name:",k," rows:",v[0]," columns:",v[1]
- while True:
- sn=raw_input("please choose a sheetname:")
- if sn not in sheetD:
- sn=raw_input("please choose a sheetname:")
- else:
- bs=getSheetTitle(sn)
- tn=raw_input("titles split by comma:")
- getContext(tn,sn+'_'.join(tn.split(','))+'.txt')
- yn=raw_input("continue or exit (y/n):")
- if yn == "y":
- continue
- elif yn == "n":
- break
- else:
- print "please choose y or n!"
复制代码 |
|